权限基础概念
-
权限类型
- 读(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