红帽RHCSA8认证考试:配置/var/tmp/fstab文件的权限

题目描述

配置 /var/tmp/fstab 权限

  • 将文件 /etc/fstab 复制到 /var/tmp/fstab 。配置 /var/tmp/fstab 的权限以满足如下条件:
  • 文件 /var/tmp/fstabroot 用户所有
  • 文件 /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)实现“用户或组对文件”的权限设置,在这样一个设置过程中,最常用到的命令有两个,分别是:setfaclgetfacl.

根据题目要求,我们首先将文件 /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 文件的权限设置均已被满足。

至此,我们就完成了本题。