修改文件/目录权限命令集合

chown 命令

chown 命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。

只有 文件属主超级用户(root) 才可以使用该命令。

命令用法

$ chown [OPTION]... [OWNER][:[GROUP]] FILE...
$ chown [OPTION]... --reference=RFILE FILE...

其中

  • OWNER 代表要变更的文件属主,可以是用户或者是用户 ID

  • GROUP 代表要变更的文件属组,可以是组名或组 ID

  • FILE 可以是由空格分开的文件列表,在文件名中可以包含通配符

常用可选参数

参数

说明

--reference=RFILE

把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录 RFILE 的拥有者与所属群组相同

-R, --recursive

递归处理,将指定目录下的所有文件及子目录一并处理

-h, --no-dereference

只对符号链接的文件作修改,而不更改其他任何相关文件

-v, --verbose

显示执行过程

使用实例

# 将目录 /usr/gackle 及其下面的所有文件、子目录的文件属主改成 tim
$ chown -R tim /usr/gackle

chgrp 命令

chgrp 命令用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。

如果用户不是该文件的 文件属主超级用户(root),则不能改变该文件的组。

命令用法

$ chgrp [OPTION]... GROUP FILE...
$ chgrp [OPTION]... --reference=RFILE FILE...

其中:

  • GROUP 代表要变更的文件属组,可以是组名或组 ID

  • FILE 可以是由空格分开的文件列表,在文件名中可以包含通配符

常用可选参数

参数

说明

--reference=RFILE

把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录 RFILE 的拥有者与所属群组相同

-R, --recursive

递归处理,将指定目录下的所有文件及子目录一并处理

-h, --no-dereference

只对符号链接的文件作修改,而不更改其他任何相关文件

-v, --verbose

显示执行过程

使用实例

# 将目录 /usr/meng 及其下面的所有文件、子目录的文件属组改成 staff
$ chgrp -hR staff /user/meng

chmod 命令

chmod 命令用来变更文件或目录的权限。在 Linux 里,文件或目录权限的控制分别以读取、写入、执行 3 种一般权限来区分,另有 3 种特殊权限可供运用。用户可以使用 chmod 指令去变更文件与目录的权限,设置方式采用 文字数字代号 皆可。

符号链接的权限无法变更,如果用户对符号链接修改权限,其改变会作用在被链接的原始文件。

命令用法

$ chmod [options]... mode[,mode ...] file[ file ...]

其中 mode 是下面形式的组合 [ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+

常用可选参数

参数

说明

--reference=RFILE

把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录 RFILE 的拥有者与所属群组相同

-R, --recursive

递归处理,将指定目录下的所有文件及子目录一并处理

-v, --verbose

显示执行过程

使用实例

  1. 为文件设置属主可执行,同组成员可写入

    gackle@machine:~$ chmod u+x,g+w file
  2. 为文件设置属主全权限,同组成员不可执行,其他用户只可读

    ``` bash gackle@machine:~$ chmod u=rwx, g=rw, o=r file.txt

gackle@machine:~$ chmod 764 file.txt # 效果同上

3. 对文件设置为用户都有可执行权限

gackle@machine:~$ chmod a+x file ```

Last updated