Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux chmod 命令。

1、命令简介

chmod:改变文件或目录权限

2、命令用法

chmod [Options]... Mode [,Mode]... file...
chmod [Options]... Numeric_Mode file...
chmod [Options]... --reference=RFile file...

3、命令描述

chmod根据mode修改每个给定文件的权限,其中mode描述了需要修改的权限。mode可以用八进制数字或字母指定。hmod命令的英文原意是“change the permissions mode of a file”,我们简称为“change mode”,意为用来改变文件或目录权限的命令,但是只有文件的属主和超级用户root才能执行这个命令。有两种模式,一种是采用权限字母和操作符表达式;另一种是采用数字。

4、命令选项

-c若该文件权限确实已经更改,才显示其更改动作
-f若该文件权限无法被更改也不显示错误讯息
-v显示权限变更的详细资料
-R对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

5、数字mode

数字mode的格式是'augo'。

数字mode是从1到4个八进制数字(0-7),通过将这些位与值4、2和1相加得到。任何省略的数字都假定为前导零。第一个数字选择设置的用户ID(4),并设置组ID(2)和sticky(1)属性。第二个数字选择文件所属用户的权限:读(4)、写(2)、执行(1);第三个选择文件组中其他用户的权限,具有相同的值;第四个值用于不属于该文件组的其他用户,值相同。

6、使用示例

1)仅所有者读

$ chmod 400 sample.txt 

2)仅限用户组读

$ chmod 040 sample.txt 

3)任何其它人可读

$ chmod 004 sample.txt 

4)仅所有者可写

$ chmod 200 sample.txt 

5)仅用户组可写

$ chmod 020 sample.txt 

6)任何其它人可写

$ chmod 002 sample.txt 

7)仅所有者可执行

$ chmod 100 sample.txt 

8)仅用户组可执行

$ chmod 010 sample.txt 

9)任何其它人可执行

$ chmod 001 sample.txt 

10)允许所有者和组和任何人的读许可。

$ chmod 444 sample.txt

11)允许所有者、组和任何人具有读权限

$ chmod 777 sample.txt

7、符号 mode

命令格式:

chmod [who] operator [permission] filename

who包含的选项及其含义:

       u 文件属主权限。

       g 属组用户权限。

       o 其他用户权限。

       a 所有用户(文件属主、属组用户及其他用户)。

operator包含的选项及其含义:

        + 增加权限。

        - 取消权限。

        = 设定权限。

permission包含的选项及其含义:

        r 读权限。

        w 写权限。

        x 执行权限。

        s 文件属主和组set-ID。

        t 粘性位*

        l 给文件加锁,使其他用户无法访问。

        u,g,o 针对文件属主、属组用户及其他用户的操作。

8、使用示例

1)拒绝所有人的执行权限

chmod a-x sample.txt 

2)使一个文件可读和可写的组和其他

chmod go+rw sample.txt 

3)用户/所有者可以执行一个shell脚本

chmod u+x samplescript.sh

4)允许所有人读、写和执行文件,并打开设置的group-ID

chmod =rwx,g+s samplescript.sh

5)设置所有人可读

chmod a+r sample.txt  

6)将目前目录下的所有文件与子目录皆设为任何人可读取

chmod -R a+r *   

7)只有该文件拥有者可以执行

chmod u+x sample.txt

推荐文档