Linux命令之修改文件权限chmod
  TEZNKK3IfmPf 2023年11月13日 24 0

概述

chmod 命令可以修改文件或目录的权限。

Linux命令之修改文件权限chmod

注:chmod 命令有两种修改权限的方法:一种是包含字母和操作符表达式法;一种是包含数字的数字设定法。

语法

该命令的语法如下:

# 第一种修改方法
chmod [{
     
       ugoa}{
     
       +-=}{
     
       rwx}] 文件或目录
# 第二种修改方法
chmod [mode=421 ] [文件或目录]

该命令支持的选项有:

选项 说明
-c, --changes 效果类似“-v”参数,但仅报告更改的部分
-f, --quiet, --silent 不显示错误信息
-R, --recursive 递归处理,将指令目录下的所有文件及子目录一并处理
-v, --verbose 显示指令执行过程
--reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同
<权限范围>+<权限设置> 开启权限范围的文件或目录的该选项权限设置
<权限范围>-<权限设置> 关闭权限范围的文件或目录的该选项权限设置
<权限范围>=<权限设置> 指定权限范围的文件或目录的该选项权限设置

注:

  • u 表示所有者;g 表示所属组;o 表示除了所有者和所属组中的其他人;a 表示所有人(包括 ugo)。
  • + 表示增加权限;- 表示撤销权限;= 表示设定权限。
  • r 表示读权限;w 表示写权限;x 表示执行权限;- 表示不具有任何权限,代表数字是 0。
  • r=4 表示等价于读权限;w=2 表示等价于写权限;x=1 表示执行权限。rwx=4+2+1=7 表示具有读写执行权限。

使用

使文件所有者具有执行权限

我们可以修改文件的权限,让它的所有者具有执行权限。命令格式如下:

# 语法
chmod u+x 文件名
# 示例,使得 test.sh 文件的所有者具有执行权限
chmod u+x test.sh

Linux命令之修改文件权限chmod

注:这里只演示常见的情况,其他情况如修改文件的所属组具有执行权限(g+x),可举一反三。

修改文件所有者失去执行权限并使其他用户也有执行权限

这个例子演示了如何修改多个权限,他们之间用逗号隔开即可。命令格式如下:

# 语法
chmod u-x,o+x 文件名
# 示例,让 test.sh 文件的所有者失去执行权限,让其他用户获得执行权限
chmod u-x,o+x test.sh

Linux命令之修改文件权限chmod

采用数字方式设置文件权限

例如,要求采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行的权限。命令格式如下:

# 语法
chmod 777 文件名
# 示例,让 test.sh 文件的所有者、所属组、其他用户都具有可读可写可执行的权限
chmod 777 test.sh

Linux命令之修改文件权限chmod

注:因为读权限 r=4、写权限 w=2、执行权限 x=1,如果要让一个文件具有可读可写可执行权限就是要赋予 rwx 权限,即 rwx=4+2+1=7,而所有者、所属组、其他用户都要有可读可写可执行权限就是 rwxrwxrwx,即 rwxrwxrwx=777

修改指定目录下所有子文件和子目录都具有可读可写可执行

如果要一起修改指定目录下的所有子文件和子目录都具有可读可写可执行权限,那么就需要用到 -R 选项。命令格式如下:

# 语法
chmod -R 777 指定目录名
# 示例,让 test/ 目录下的所有子文件和子目录都具有可读可写可执行权限
chmod -R 777 test/

Linux命令之修改文件权限chmod

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   52   0   0 linux服务器
  TEZNKK3IfmPf   2024年05月31日   30   0   0 linux服务器centos
  TEZNKK3IfmPf   2024年05月31日   29   0   0 linuxbind
  TEZNKK3IfmPf   2024年05月31日   40   0   0 linuxshell
TEZNKK3IfmPf