Linux中chmod命令
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)才能进入