题目描述
配置 /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 文件的权限设置均已被满足。
至此,我们就完成了本题。