权限基础概念
- 
权限类型 - 读(r):查看文件内容/目录列表(ls)
- 写(w):修改文件/在目录增删文件
- 执行(x):运行程序/进入目录(cd)
 
- 读(r):查看文件内容/目录列表(
- 
权限对象 - 用户(u):文件所有者
- 组(g):所属用户组
- 其他(o):系统其他用户
- 全部(a):所有三类对象
 
- 
权限表示法 - 符号表示:rwxr-xr--(用户:读写执行,组:读执行,其他:只读)
- 数字表示:三位八进制数(如755),每位数= r(4)+w(2)+x(1)之和
 
- 符号表示:
修改权限命令 chmod
▶ 符号模式(直观操作)
chmod [对象][操作符][权限] 文件名
- 操作符:(添加)、(移除)、(精确设置)
- 示例:
chmod u+x script.sh # 给所有者添加执行权限 chmod go-w file.txt # 移除组和其他用户的写权限 chmod a=rw config.cfg # 所有用户设为读写权限 
▶ 数字模式(高效批量操作)
chmod 数字权限 文件名
- 常用组合:
- 755:用户rwx,组/其他r-x(可执行程序)
- 644:用户rw-,组/其他r–(配置文件)
- 700:仅用户有rwx权限(私密文件)
 
- 示例:
chmod 600 ~/.ssh/id_rsa # 密钥文件设为仅用户读写 chmod 755 /opt/app.sh # 脚本设为可执行 
更改文件归属权
- 
修改所有者(chown) chown 新用户 文件名 # 修改所有者 chown user:group 文件名 # 同时修改所有者和组 sudo chown www-data /var/www # 将网站目录所有者改为www-data 
- 
修改所属组(chgrp) chgrp 新组名 文件名 sudo chgrp developers project/ # 设置目录属组为developers 
特殊权限(谨慎使用)
| 权限 | 符号 | 数字 | 作用 | 示例 | 
|---|---|---|---|---|
| SetUID | s | 4000 | 以文件所有者身份执行 | chmod 4755 /bin/su | 
| SetGID | s | 2000 | 在目录中创建文件继承属组 | chmod 2775 /shared | 
| Sticky | t | 1000 | 仅文件所有者可删除 | chmod 1777 /tmp | 
关键注意事项
- 最小权限原则:仅授予必要权限,如配置文件通常设为644
- 目录权限要求:
- 进入目录需x权限
- 删除文件需目录的w权限(与文件自身权限无关)
 
- 进入目录需
- 递归修改:加-R参数处理目录内所有文件(慎用!)chmod -R 750 /data/ # 递归修改/data下所有文件权限 
- 系统文件保护:避免修改/etc、/bin等系统目录权限
权限检查与调试
- 查看权限:ls -l显示如-rwxr--r-- 1 user group 4096 Jan 1 10:00 file
- 权限冲突时:
- 确认当前用户(whoami)
- 检查用户所属组(groups)
- 验证父目录权限(namei -l /path/to/file)
 
- 确认当前用户(
安全提示:
- 勿随意设置
777权限(全开放=零安全)- 敏感文件(如
/etc/shadow)默认权限640禁止普通用户读取- 生产环境修改前用
--reference复制参考文件权限:chmod --reference=安全文件 需修改文件
通过合理配置权限,可平衡系统安全性与操作便利性,建议结合umask(默认权限掩码)进行系统级控制,并定期审计关键文件权限(如使用auditd工具)。
引用说明基于Linux核心文档(kernel.org)、Filesystem Hierarchy Standard(FHS 3.0)及Ubuntu、CentOS官方手册,遵循POSIX标准权限模型,操作示例已在Linux 5.15+内核环境验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9359.html
 
                 
        