1
Linux服务器配置与应用
1.5.1.4 2.1.4 chmod
2.1.4 chmod

chmod:使用chmod命令改变指定文件访问权限有两种方式:一种是用符号标记所进行更改,另一种方式是采用8进制数指定新的访问权限。使用下面的语法格式来使用符号改变方式:

在这种格式下,所带参数是一个用逗号分隔的字符列表。每个符号方式的改变命令以零或者字'ugoa'开始;'ugoa'控制哪些用户对该文件访问权限将被改变:文件的所有者(u),与文件所有者同组的用户(g),其他组的用户(o),所有用户(a)。因此,a在这里等同于ugo。如果没有带参数,则表示缺省,与设置为a,运行效果相同,在umask中设置的位将不会受影响。

操作符'+'使得用户选择的权限被追加到每个指定文件,(操作给指定文件添加所选权限);操作符'-'使得这些权限被撤销;'='使得指定文件只具有这些权限。

字符串'rwxXstugo'给用户选择新的属性:(r)读权限、(w)写权限、(x)执行权(或对目录的访问权),(X)只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性,(s)同时设定用户或组ID,(t)粘滞位(保存程序的文本到交换设备上),(u)目标文件属主,(g)目标文件属主所在的组,(o)其他用户。(因此,'chmod g-s file'撤销sgid位,'chmod ug+s file'同时设置了suid和sgid位,'chmod o+s file' 则没有进行任何设置)。

POSIX并没有粘滞位的描述。它最初是指在交换设备上保留程序文本。现在,如果设置了目录的粘滞位,那么只有文件和目录的所有者可以删除该目录下的文件。(一般使用于类似/tmp这样有基本写权限的目录)数字模式是1到4个八进制数,每个数由位权为4,2,1的3位叠加而得.被省略掉的数字缺省设置为零.第一位为4时为suid,2时为sgid,1时为粘滞位,第二位设置文件所有者的权限:可读(4),可写(2),可执行(1);第三位设置了文件所在组其他用户的权限,值如上;第四位设置了其他组用户的权限,值同上。

由于chmod的系统调用不支持,chomd命令不能改变符号链接的权限。同时,由于每个符号连接都可在命令行中列出,chmod改变了所指文件的属性。相反,chmod在递归目录遍历时忽略所碰到的符号连接。

操作方法:chmod [options] mode file...

选项如下: