Linux chmod命令使用详解
用法
1 | chmod [OPTION]... MODE[,MODE]... FILE... |
描述
使用chmod命令改变指定文件访问权限有两种方式:一种是用符号标记所进行更改,另一种方式是采用8进制数指定新的访问权限。
符号模式的格式:
1 | [ugoa...][[+-=][rwxXstugo...]...][,...] |
在这种格式下,所带参数是一个用逗号分隔的字符列表.每个符号方式的改变命令以零或者字’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这样有基本写权限的目录)
数字模式是一到4个八进制数,每个数由位权为4,2,1的3位叠加而得.被省略掉的数字缺省设置为零. 第一位为4时为suid,2时为sgid,1时为粘滞位,.第二位设置文件所有者的权限:可读(4),可写(2),可执行(1);第三位设置了文件所在组其他用户的权限,值如上;第四位设置了其他组的用户的权限,值同上.
由于chmod的系统调用不支持,chomd命令不能改变符号链接的权限.由于符号链接的权限从不使用,所以这也不成问题.无论如何,由于每个符号连接都可在命令行中列出,chmod改变了所指文件的属性.相反,chmod在递归目录遍历时忽略所碰到的符号连接.
选项
选项 | 说明 |
---|---|
-c, –changes | 若该文件权限确实已经更改,才显示其更改动作 |
-f, –silent, –quiet | 若该文件权限无法被更改也不要显示错误讯息 |
-v, –verbose | 显示权限变更的详细资料 |
–no-preserve-root | 不对根目录做特殊对待(默认值) |
–preserve-root | 阻止对根目录的遍历操作 |
–reference=RFILE | 使用RFILE的模式 |
-R, –recursive | 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更) |
–help | 显示帮助信息 |
–version | 显示版本信息 |
实例
1 | # 设置文件file1.txt 所有人可读 |
知识扩展和实例
Linux用 户分为:拥有者、组群(Group)、其他(other),Linux系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及root的相关信 息, 都是记录在/etc/passwd
文件中。每个人的密码则是记录在/etc/shadow
文件下。 此外,所有的组群名称记录在/etc/group
內!
linux文件的用户权限的分析图
1 | -rw-r--r-- 1 user staff 651 Oct 12 12:53 .gitmodules |
例:rwx rw- r–
r=读取属性 //值=4
w=写入属性 //值=2
x=执行属性 //值=1
1 | chmod u+x,g+w f01 # 为文件f01设置自己可以执行,组员可以写入的权限 |
文件的属主和属组属性设置
1 | chown user:market f01 # 把文件f01给user,添加到market组 |
将/home/wwwroot/
里的所有文件和文件夹设置为755
权限
(1)直接指定路径修改
1 | chmod -R 755 /home/wwwroot/* |
(2)手动进入该目录修改权限(并显示详细过程)
1 | cd /home/wwwroot |