上一篇
怎么设置Linux文件权限
- Linux
- 2025-06-01
- 2311
Linux权限设置使用
chmod
命令修改文件权限,常用数字法(如755)或符号法(如u=rwx),权限分为读(r=4)、写(w=2)、执行(x=1),分配给所有者(u)、用户组(g)和其他用户(o)。
Linux权限设置指南:从基础到实战
Linux权限系统是多用户环境的核心安全机制,通过精细的权限控制保护文件不被未授权访问,本指南将详解权限设置方法,助您掌握系统安全管理精髓。
权限基础概念
-
权限类型
- 读(r):查看文件内容/目录列表
- 写(w):修改文件/创建删除目录内文件
- 执行(x):运行程序/进入目录
-
权限对象
- 用户(Owner):文件创建者
- 组(Group):共享权限的用户组
- 其他(Others):系统所有其他用户
-
两种表示法
# 符号表示(9位字符) -rwxr-xr-- # 用户可读写执行,组可读执行,其他仅可读 # 数字表示(三位八进制数) 755 = rwxr-xr-x
查看权限
使用 ls -l
查看详细信息:
$ ls -l backup.sh -rw-r--r-- 1 user dev_team 1024 Jun 10 10:30 backup.sh
- 第1位: 表示普通文件(
d
=目录,l
=链接) - 2-4位:用户权限(
rw-
) - 5-7位:组权限(
r--
) - 8-10位:其他权限(
r--
)
修改权限(chmod命令)
方法1:数字模式(推荐)
# 设置日志文件仅用户可读写 chmod 600 /var/log/app.log # 设置脚本所有人可执行 chmod 755 backup.sh # 等同于 u=rwx,go=rx
常用数字组合:
| 权限 | 用户 | 组 | 其他 | 适用场景 |
|——|——|—-|——|———-|
| 755 | rwx | rx | rx | 可执行程序 |
| 644 | rw- | r- | r- | 配置文件 |
| 700 | rwx | — | — | 私有目录 |
方法2:符号模式
# 添加组写权限 chmod g+w report.docx # 移除其他用户所有权限 chmod o= project/ # 同时设置多对象 chmod u=rwx,g=rx,o= install.sh
操作符说明:
- 添加权限
- 移除权限
- 精确设置权限
变更文件归属
-
修改所有者(chown)
# 变更文件所有者 sudo chown john database.db # 递归变更目录所有者 sudo chown -R jenkins /opt/build/
-
修改所属组(chgrp)
# 变更文件组 sudo chgrp developers app.py # 同时修改所有者和组 sudo chown deploy:deploy /var/www/
高级权限管理
-
默认权限(umask)
umask 022 # 新建文件默认权限644(666-022) umask 077 # 私有权限(仅用户可访问) # 永久生效:写入 ~/.bashrc 或 /etc/profile
-
特殊权限
- SUID(4):以文件所有者身份执行
chmod u+s /usr/bin/passwd # 设置SUID
- SGID(2):目录内新建文件继承组ID
chmod g+s /shared_team/ # 设置SGID
- Sticky Bit(1):防目录内文件被他人删除
chmod +t /tmp/ # 经典案例:/tmp目录
- SUID(4):以文件所有者身份执行
实战场景示例
-
网站目录安全配置
sudo chown -R www-data:www-data /var/www/ sudo chmod 755 /var/www/html # 目录可访问 sudo chmod 644 /var/www/html/*.html # 静态文件只读
-
共享开发目录
sudo mkdir /dev_projects sudo chown :dev_team /dev_projects sudo chmod 2775 /dev_projects # SGID+组读写
-
敏感文件保护
chmod 700 ~/.ssh/ # 仅用户访问 chmod 600 ~/.ssh/id_rsa # 私钥禁止他人读
安全最佳实践
- 最小权限原则:仅授予必要权限
- 定期审计:使用
find
检查异常权限find / -perm -4000 -ls # 查找所有SUID文件
- 避免777权限:
chmod 777
是重大安全风险 - 隔离用户数据:用组权限替代全局可写
关键提醒:权限操作需谨慎!错误设置可能导致服务崩溃或安全破绽,生产环境建议先在测试环境验证。
引用说明:
- Linux man-pages 官方文档:
man chmod
,man chown
- Filesystem Hierarchy Standard (FHS) 3.0
- OpenSSH安全指南:openssh.com/security.html