题目描述
配置 /var/tmp/fstab
权限
- 将文件
/etc/fstab
复制到/var/tmp/fstab
。配置/var/tmp/fstab
的权限以满足如下条件: - 文件
/var/tmp/fstab
为root
用户所有 - 文件
/var/tmp/fstab
属于组root
- 文件
/var/tmp/fstab
应不能被任何人执行 - 用户
natasha
能够读取和写入/var/tmp/fstab
- 用户
harry
无法写入或读取/var/tmp/fstab
- 所有其他用户(当前或未来)能够读取
/var/tmp/fstab
核心命令
cp -rf /etc/fstab /var/tmp/fstab setfacl -m u:natasha:rw /var/tmp/fstab setfacl -m u:harry:-- /var/tmp/fstab 验证: getfacl /var/tmp/fstab
操作步骤
在 Linux 系统中,我们可以使用 ACL 访问控制列表(Access Control List)实现“用户或组对文件”的权限设置,在这样一个设置过程中,最常用到的命令有两个,分别是:setfacl
和 getfacl
.
根据题目要求,我们首先将文件 /etc/fstab
复制到 /var/tmp/fstab
, 具体命令如下:
cp -rf /etc/fstab /var/tmp/fstab
之后,查看文件 /var/tmp/fstab
的权限可以发现,该文件当前的权限设置已经满足输入 root
用户和 root
组以及不能被任何人执行的要求:
# ll /var/tmp/fstab -rw-r--r--. 1 root root 534 Nov 21 13:51 /var/tmp/fstab
注:
①
ll
命令会列出当前目录或者指定目录下所有文件(包括隐藏文件)的详细信息,包括文件的读写执行属性、拥有者和所属组等信息,比使用ls -l
命令显示出来的内容更全面。
如果 /var/tmp/fstab
文件默认不是属于 root 用户和 root 组所有,我们可以使用如下命令将该文件的用户和用户组都设置为 root:
chown root:root /var/tmp/fstab
接下来,使用 setfacl
命令使用户 natasha
能够读取和写入 /var/tmp/fstab
文件:
setfacl -m u:natasha:rw /var/tmp/fstab
同样,还是使用 setfacl
命令使用户 harry
无法写入或读取 /var/tmp/fstab
文件:
setfacl -m u:harry:-- /var/tmp/fstab
注:
①
-m
参数表示设定(新增)ACL 权限设定;② 设定用户对文件的权限的格式为
u:用户名:权限
, 例如,u:natasha:rw
表示用户natasha
对后面指定的文件有读写权限,u:harry:--
表示用户harry
对后面指定的文件没有读写权限,其中的-
就是用来表示“没有权限”,这里也可以只写一个-
;③
/var/tmp/fstab
表示我们要操作的 ACL 访问控制目标为/var/tmp/fstab
这个文件。
最后,我们可以用 getfacl
命令查看一下 /var/tmp/fstab
目录的 ACL 权限信息:
# getfacl /var/tmp/fstab getfacl: Removing leading '/' from absolute path names # file: var/tmp/fstab # owner: root # group: root user::rw- user:natasha:rw- user:harry:--- group::r-- mask::rw- other::r--
根据上面返回的 ACL 权限信息可知,题目要求的针对 /var/tmp/fstab
文件的权限设置均已被满足。
至此,我们就完成了本题。