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命令将其删除了。