Linux操作系统
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.2 权限管理命令

5.2.1 设置文件创建掩码(umask)

1.功能与用法

umask命令的功能是设置或查询umask的值。文件创建掩码umask的值同文件权限一样,可以表示为八进制数或符号串方式。

创建文件时,系统将用八进制数777 与文件创建掩码的八进制数按位做减运算,所得的三位八进制数作为新文件的存取权限。若umask的值为022,则创建文件的理论权限为777−022= 755,即rwxr-xr-x。这对于目录来讲是合适的,可以保证每个用户都能进入,但是对于一个文件来讲就不一定合适了。因为一个文件不一定具有可执行的内容,因此还要去除各类用户的执行权,故一般文件的权限为644,即rw-r--r--。在编程时,新创建文件的权限与umask的关系也可这样描述:新创建文件的权限为0666&~umask,新创建目录的权限为0777&~umask。

umask命令的用法为:

                umask[-p][-S]  [new_umask]

2.参数说明

umask命令的参数如表5-2所示。

表5-2 umask命令的参数

在设置文件创建掩码时,若new_umask的首位为数字,则用八进制方式解释输入内容,否则使用符号方式处理。

3.示例

                #umask                   #显示当前的umask值
                #umask 0022              #设置umask值为0022
                #umask u=rwx,g=rx,o=      #设置umask值为0027

5.2.2 改变文件的权限(chmod)

1.功能与用法

chmod(change mode)命令的功能为改变文件或目录的访问权限。在设置或改变文件或目录的权限时,可以使用符号方式或数字方式。超级用户或用户主可以执行该命令。其用法有以下两种形式。

(1)符号方式:

                chmod[options]<a|u|g|o><+|−|=><str_perm>,… file …

(2)数字方式:

                chmod[options]num_perm file …

2.参数说明

chmod命令的部分参数如表5-3所示。

表5-3 chmod命令的部分参数

3.示例

                #chmod a+x my_p1 my_p2      #为所有用户(all)对文件my_p1、my_p2增加执行权
                #chmod u+rwx,go+rx myp       #为用户主增加所有权限,为同组人和其他人增加读和执行权
                #chmod-R o-rwx/tmp/w123     #递归去掉/tmp/w123内目录和文件对其他人的所有权限
                #chmod-R 777/tmp/*          #将/tmp中的所有文件和各级子目录及内容权限设置为777

5.2.3 改变文件的所有者(chown)

1.功能与用法

chown(change owner)命令的功能是改变文件的所有者,本质上是改变用户主的uid。只有超级用户有权使用chown。其用法为:

                chown[options]owner[:group]file …
                chown[options]:group file …

如果用户组被指定,则文件的所属组也将被改变。

2.参数说明

chown命令的部分参数如表5-4所示。

表5-4 chown命令的部分参数

3.示例

                #chown root my_files           #将my_files的所有者改为root
                #chown zhang*.c              #将当前目录下的所有C语言文件的所有者改为zhang
                #chown-R gjshao/tmp/mydir    #递归将/tmp/mydir的所有者改为gjshao
                #chown-R gavin:bin mydat      #递归将mydat的所有者改为gavin,组改为bin
                #chown-R:bin mydat           #递归将mydat的组改为bin

5.2.4 改变文件的组(chgrp)

chgrp(change group)命令的功能是改变文件所属组,其用法为:

                chgrp[options]new_group file …

new_group可以组名或组标志给出。chgrp命令可由chown命令替代,其参数与chown相同。

5.2.5 ext2和ext3文件系统的新增属性及其管理

1.ext2的新增文件属性

ext2文件系统增加了很多新属性,新增的部分属性如表5-5所示。

表5-5 ext2新增的部分属性

2.lsattr

lsattr命令的功能是列出文件的ext2、ext3扩展属性,其用法为:

                lsattr[-RⅤdv]file …

lsattr命令的部分参数如表5-6所示。

表5-6 lsattr命令的部分参数

3.chattr

chattr命令的功能是对ext2的新增属性进行管理。其用法为:

                chattr[-RⅤ][-v version][mode]file …

权限mode的符号操作符为+|−|=MODE,MODE为如表5-5所示的新属性,+用于增加属性,−用于去除属性,=用于设置属性时去除其他属性。

设当前目录内有文件myfile,通过ls -l x和lsattr x得到它的权限和扩展属性分别为:

                -rw-r--r--    1 root   root    3046  7月 21 22:48 myfile
                ------------- myfile

使用chattr +i myfile为其增加i属性后,检查其权限和扩展属性为:

                -rw-r--r--    1 root     root         3046  7月 21 22:48 myfile
                ----i-------- myfile

使用命令rm -f myfile删除,得以下错误输出:

                rm: cannot remove 'myfile': Operation not permitted

这说明i属性对文件的删除起到了保护作用。如果使用命令chattr -i myfile去掉i属性后,就可以使用rm命令将其删除了。