chmod命令用于修改文件或目录的访问权限,支持符号模式和数字模式。符号模式通过u、g、o、a指定用户类型,使用+、-、=添加、移除或设置权限;数字模式用八进制数表示权限,r=4、w=2、x=1,三位数字分别对应所有者、组和其他用户的权限。常见用法如chmod 755文件赋予所有者rwx、组和其他用户r-x,chmod 644使所有者可读写、其他用户只读。目录需x权限才能进入,递归修改用-R选项,如chmod -R 755 /var/www/html。注意避免chmod 777带来的安全风险,合理分配权限以保障系统安全与协作便利。

在Linux系统中,chmod 命令用于修改文件或目录的访问权限。掌握 chmod 的使用,是管理文件安全和多用户协作的基础。下面详细介绍 chmod 命令的语法、权限表示方式以及常见用法。
权限的基本概念
每个文件或目录在Linux中都有三类用户的权限设置:
- u (user):文件所有者
- g (group):文件所属用户组
- o (others):其他用户
- a (all):以上三类用户的总和
每类用户拥有三种基本权限:
- r (read):读权限,允许查看文件内容或列出目录内容
- w (write):写权限,允许修改文件或在目录中创建/删除文件
- x (execute):执行权限,允许运行文件(如脚本)或进入目录

chmod的两种模式:符号模式和数字模式
chmod 支持两种方式设置权限:符号模式(使用字母)和数字模式(使用八进制数)。
1. 符号模式
语法格式:
chmod [用户类型][操作符][权限类型] 文件/目录
常用操作符:
- +:添加权限
- –:移除权限
- =:设置精确权限
示例:
- chmod u+x script.sh:给文件所有者添加执行权限
- chmod g-w data.txt:移除用户组的写权限
- chmod o=r file.conf:设置其他用户只有读权限
- chmod a+x program:给所有用户添加执行权限
2. 数字模式(八进制表示)
每种权限对应一个数值:
- r = 4
- w = 2
- x = 1
将权限值相加,得到每位用户的权限数字。例如:
- rw- = 4 + 2 + 0 = 6
- r-x = 4 + 0 + 1 = 5
- rwx = 4 + 2 + 1 = 7
三位数字分别代表:所有者、组、其他用户的权限。
示例:
- chmod 755 /var/www/html:所有者有 rwx,组和其他用户有 r-x
- chmod 644 config.ini:所有者可读写,组和其他用户只读
- chmod 700 secret_dir:仅所有者有完全权限

修改目录权限的常用场景
对目录设置权限时,要注意执行权限(x)的重要性。没有执行权限,用户无法进入目录。
- 开放共享目录:chmod 755 shared/ —— 所有者可读写执行,其他人可进入和查看
- 私有目录:chmod 700 private/ —— 只有所有者能访问
- 协作目录:chmod 775 project/ —— 所有者和组成员有完整权限,其他人可读和进入
若要递归修改目录及其内部所有文件和子目录的权限,使用 -R 选项:
chmod -R 755 /var/www/html
注意:递归操作影响大,操作前请确认路径正确。

注意事项与安全建议
修改权限时需谨慎,错误设置可能导致安全风险或服务异常。
- 避免随意使用 chmod 777,这会让所有用户拥有全部权限,存在严重安全隐患
- 目录通常需要 x 权限才能被访问,而文件是否需要 x 取决于是否可执行
- 使用 ls -l 查看当前权限设置,确认修改结果
- 权限修改仅影响权限位,不改变文件所有者或所属组(需用 chown 修改)
基本上就这些。掌握 chmod 的符号和数字模式,能灵活应对大多数权限管理需求。关键是理解权限的含义和合理分配,保障系统安全与协作便利之间的平衡。


