题目描述
创建具有以下特征的协作目录 /home/managers
:
/home/managers
的组用权是sysmgrs
- 目录应当可被
sysmgrs
的成员读取、写入和访问,但任何其他用户不具这些权限。(当然,root 用户有权访问系统上的所有文件和目录) /home/managers
中创建的文件自动将组所有权设置到sysmgrs
组。
核心命令
mkdir /home/managers chown :sysmgrs /home/managers chmod 2770 /home/managers ls -ld /home/managers
操作过程
首先新建一个名为 /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
至此,我们就完成了本题。