详解Linux chmod命令:修改文件权限

  • Post category:Linux

Linux chmod(Change Mode)命令用于修改文件或目录的权限。该命令可以赋予文件或目录的可读、可写、可执行权限,同时也可以撤销文件或目录的某些权限。

命令语法

chmod [OPTION]... MODE[,MODE]... FILE...
  • OPTION: 可选参数,主要包含 -c-r-v 等。
  • MODE: 权限模式,主要包含数字模式和符号模式,用于授予文件或目录不同的读、写和执行权限。数字模式为 3 个数字,每个数字范围为 0~7,分别表示用户、用户组、其他用户的权限;符号模式有三种权限类型 ugo,分别表示用户、用户组、其他用户,每个权限类型有三个符号:+ 表示加权限、- 表示撤销权限、= 表示设置权限等于给定值。
  • FILE: 待修改权限的文件或目录名,支持通配符。

使用示例

1. 数字模式修改权限

以下是数字模式对权限的具体授予方式和对应的数值:

权限类型 相关数值
r(读权限) 4
w(写权限) 2
x(执行权限) 1

例如,为一个 shell 脚本文件 test.sh 授予所有用户读、写和执行权限,可以使用以下命令:

chmod 777 test.sh

其中,每个数字代表的意义分别是:

  • 第一个 “7” 代表用户(owner)的权限,1 表示可执行权限、2 表示可写权限、4 表示可读权限,所以 rwx 三种权限合计数值为 1+2+4=7。
  • 第二个 “7” 代表用户组(group)的权限,同上。
  • 第三个 “7” 代表其他用户的权限,同上。

2. 符号模式修改权限

使用符号模式修改文件或目录的权限更加灵活,基于当前权限和修改方式授予或撤销对应权限。以下是符号模式的示例:

  • 提升目录 /data/www 中所有文件的执行权限:
chmod +x /data/www/*
  • 删除文件 test.sh 所有用户的执行权限:
chmod -x test.sh

常用参数

  • -c:如果权限被修改,则显示被修改的权限类容。
  • -r:递归地修改文件或目录的权限。
  • -v:显示每个文件或目录的权限变化。

总结

Linux chmod 命令是文件或目录权限管理的基础命令,根据权限需求使用不同的权限模式,可实现灵活的授权、撤销等操作。