Linux-chmod

Published: 16 Dec 2015 Category: Linux

chmod

用于改变文件或目录的访问权限,该命令有两种用法。一种是包含字母和操作符表达式的文字设定法,另一种是包含数字的数字设定法。

  • 文字设定

chmod [who] [+ , - ,=] [mode] 文件名

操作对象who 可是下述字母中的任一个或者它们的组合: u 表示“用户(user)”,即文件或目录的所有者 g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户 o 表示“其他(others)用户”。 a 表示“所有(all)用户”。它是系统默认值

操作符号 可以是: 添加某个权限 + 取消某个权限 - 赋予给定权限并取消其他所有权限 =。

设置mode 所表示的权限可用下述字母的任意组合: r 可读 w 可写 x可执行,x只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。

文件名:以空格分开的要改变权限的文件列表,支持通配符。

在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example,使同组和其他用户对文件example 有读权限。

  • 数字设定法

我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,(111二进制),然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。

例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。

数字设定法的一般形式为:chmod [mode] 文件名

  • 例子 $ chmod u+x file 给file的属主增加执行权限
    $ chmod 751 file   给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
    $ chmod u=rwx,g=rx,o=x file 上例的另一种形式
    $ chmod =r file 为所有用户a分配读权限
    $ chmod 444 file 同上例
    $ chmod a-wx,a+r file 同上例
    $ chmod -R u+r directory   递归地给directory目录下所有文件和子目录的属主分配读的权限
    $ chmod 4755   设置用ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限 。

About me

就读于中山大学, 记录日常的学习和生活.

Links