Linux 中 chmod 命令用法详解
chmod(change mode)是 Linux 中用于修改文件或目录权限的核心命令。其权限系统基于三类用户:
- 所有者(u, user):文件创建者
- 所属组(g, group):文件关联的用户组
- 其他用户(o, others):系统其他用户
权限分为三种操作:
- 读(r, 4):查看文件内容/目录列表
- 写(w, 2):修改文件/在目录增删文件
- 执行(x, 1):运行程序/进入目录
一、符号模式(直观易用)
通过字母组合操作权限:
chmod [用户类别][操作符][权限] 文件名
- 用户类别:
u(所有者),g(组),o(其他),a(所有用户) - 操作符:
+(添加),-(移除),=(精确设置) - 权限:
r,w,x
常用示例:
- 为所有者添加执行权限:
chmod u+x script.sh - 为组移除写权限:
chmod g-w document.txt - 设置其他用户仅有读权限:
chmod o=r config.cfg - 所有用户添加读写权限:
chmod a+rw data.log
二、数字模式(高效精确)
用三位八进制数表示权限组合(范围 0-7):
- 4 = 读(r)
- 2 = 写(w)
- 1 = 执行(x)
权限值相加计算:
- 7 (4+2+1):读写执行
- 6 (4+2):读写
- 5 (4+1):读执行
命令格式:
chmod [三位数字] 文件名
常用示例:
- 所有者读写执行(7),组读执行(5),其他无权限(0):
chmod 750 backup.sh - 所有用户可读可执行(目录常用):
chmod 555 public_dir/ - 仅所有者可读写(敏感文件):
chmod 600 secret.key
三、高级用法
- 递归修改目录权限(加
-R参数):chmod -R 755 /var/www/ # 目录及子文件全部设为755 - 参照文件权限(用
--reference):chmod --reference=source.txt target.txt # 复制source权限到target - 特殊权限位(需谨慎使用):
- SUID(4):允许临时获取所有者权限
chmod 4755 /usr/bin/program - SGID(2):目录中新文件继承组权限
chmod 2770 /shared/team_dir
- SUID(4):允许临时获取所有者权限
四、权限查看
使用 ls -l 查看当前权限:
ls -l file.txt
# 输出示例:-rwxr-xr-- 1 user group 1024 Jan 1 12:00 file.txt
- 首字段
-rwxr-xr--解析:
-(文件类型)|rwx(所有者) |r-x(组) |r--(其他用户)
⚠️ 注意:
- 修改系统文件需
sudo提权- 错误权限可能导致安全风险(如
chmod 777 /)- 目录需有执行权限(x)才能进入
1155

被折叠的 条评论
为什么被折叠?



