RH124教材中控制对文件的访问一章中有一道解释Linux文件系统权限的测验题,可以一起来看看:
一、权限解释
这是通过 ls -l 命令查看的结果。它显示了文件或目录的权限、拥有者、所属组等信息。
1、长列表的第一个字符表示文件类型:
- -是常规文件。
- d 是目录。
- l是符号链接。
- c 是字符设备文件。
- b 是块设备文件。
- p 是命名管道文件。
- s 是本地套接字文件。
2、接下来九个字符代表文件权限:
这些字符解释为三组,每组三个字符。
第一组是适用于文件所有者
的权限,第二组用于文件的组所有者
,最后一组则适用于所有其他(全局)用户
。
3、在第二列(链接数)之后(这里没有显示):
第一个名称指定文件的所有者
,第二个名称是文件的组所有者
,第三个名称是文件名
。
例如第二行:
-rw-rw-r--. consultant1 consultant1 app1.log
权限:-rw-rw-r–:
-:这是一个文件。
rw(用户权限):拥有者 consultant1 可以读、写。
rw(组权限):组 consultant1 中的成员可以读、写。
r–(其他用户权限):其他人只能读取,但不能写或执行。
拥有者:consultant1。
组:consultant1。
文件名:app1.log。
二、成功创建这几行文件和目录的具体命令
1. 创建用户和组
(1)、创建组
(2)、创建用户并添加到相应的组
useradd -G:
为用户帐户指定补充组的逗号分隔列表。
如果用户名不存在
,且不使用-g
选项指定初始组,系统通常会创建一个与用户名相同
的组作为初始组(如果这样的组尚不存在的话)。
- 创建 consultant1 用户并加入 consultant1 组
- 创建 operator1 用户并加入 operator1 组,并同时添加到 database1 组
- 创建 operator2 用户并加入 operator2 组,并同时添加到 contractor3 组
- 创建 contractor1 用户并加入 contractor1 组,并同时添加到 contractor3 组
最后一行需要-g是因为contractor1组已经存在,想把用户 contractor1 添加到已经存在的组 contractor1,需要使用-g指定主组。
三、创建目录和文件,并设置权限
假设当前目录是my_directory
1、创建目录 my_directory 并设置权限:
创建一个名为 my_directory 的目录,权限为 drwxrwxr-x,所有者为 operator1,组为 database1:
【chown 用户:组 文件名】
2、创建文件并设置权限:
三行命令一组
3、查文件及其权限:
例如:
operator2 用户不能读取哪个文件?
a. app1.log
b. app2.log
c. db1.conf
d.db2.conf
operator2是operator2组和contractor3组的成员,这两个组没有拥有文件,所以看其他组的权限,也就是文件权限符号的后三位,没有读取权限 r 的只有 db2.conf,所以选D