红帽RHCSA认证考试:创建协作目录

题目描述

创建具有以下特征的协作目录 /home/managers

  • /home/managers 的组用权是 sysmgrs
  • 目录应当可被 sysmgrs 的成员读取、写入和访问,但任何其他用户不具这些权限。(当然,root 用户有权访问系统上的所有文件和目录)
  • /home/managers 中创建的文件自动将组所有权设置到 sysmgrs 组。

操作过程

首先新建一个名为 /home/managers 的目录,具体命令如下:

mkdir /home/managers

接着,将 /home/managers 目录的所属组更改为 sysmgrs, 所属用户不改变,具体代码如下:

chown :sysmgrs /home/managers/

注:

① chown 命令中 : 前面的字段表示更改所属用户,: 后面的字段表示更改所属组。

使 /home/managers/ 命令可被 sysmgrs 的成员读取、写入和访问,但任何其他用户不具这些权限,具体命令如下:

chmod -Rf 770 /home/managers/

注:

-R 参数用于对指定目录下所有的目录和文件一递归的方式进行权限变更;

-f 参数表示若该目录或文件的权限无法被更改也不要显示报错信息;

770 参数与 u=rwx,g=rwx,o=--- 参数作用一致,其中 u 即 “User”, 表示“用户”,g 即 “Group”, 表示“组”,o 即 “Other Users”, 表示其他用户,u, g, o 的相对位置不能改变。同时,= 表示设定(更新)权限,r 即 “Read”, 表示“读取”,w 即 “Write”, 表示“写入”,x 即 “execute”, 表示“执行”。其中,r 可以用数字 4 代表,w 可以用数字 2 代表,x 可以用数字 1 代表,rw 可以用数字 4+2=6 代表,rwx 可以用 4+2+1=7 代表,其他的以此类推即可。

接着,使用如下命令,使得所有在 /home/managers/ 目录下创建的目录或者文件都自动拥有和 /home/managers/ 目录相同的权限:

chmod g+s /home/managers/

注:

g+s 参数是指对组(Group)设置 set_gid 标志位,如果此参数后面跟的是一个目录,那么,在该目录下创建的所有子目录或文件都会自动属于其上级目录的所属组并获取该所属组的权限。

此外,我们还可以用将 chmod -Rf 770 /home/managers/chmod g+s /home/managers/ 这两个命令合并为如下这一条命令:

chmod 2770 /home/managers/

注:

2770 参数中的数字 2 用于设置 set_gid 标志位,与 g+s 参数的作用相同,770 参数的作用则与上面所述的 770 参数作用相同。

在执行完上述操作之后,我们可以用如下命令查看一下 /home/managers/ 目录的权限和所属组信息是否正确:

ls -ld /home/managers/

注:

-l 参数表示以清单的形式列出文件的条目;

-d 参数表示如果后面接的是一个目录则只输出目录的名称,不输出目录里面的内容。

执行完上面的命令之后,正确的返回信息应该类似下面这样:

drwxrws---. 2 root sysmgrs 6 Nov 17 14:18 /home/managers/

最后,我们可以在 /home/managers/ 目录下创建一个用于测试的文件,查看该文件是否能自动继承来自 /home/managers/ 目录的权限和所属组信息:

touch /home/managers/test.txt
ls -l /home/managers/

执行完上面的命令之后,正确的返回信息应该类似下面这样:

total 0
-rw-r--r--. 1 root sysmgrs 0 Nov 17 14:19 test.txt

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