主题
用户权限管理
在 Linux 系统中,权限管理是保障多用户安全和资源隔离的重要手段。通过用户、用户组与权限机制,可以限制或授权不同资源的访问权限。
一、Linux 权限模型概览
每个文件或目录在 Linux 中都绑定三个访问角色:
- 所有者(user)
- 所属组(group)
- 其他人(others)
并具有三种基本权限:
| 权限 | 含义 | 对文件 | 对目录 |
|---|---|---|---|
| r | 读取权限 | 查看内容 | 列出目录内容 |
| w | 写入权限 | 修改、删除 | 创建、删除文件 |
| x | 执行权限 | 执行文件 | 进入目录 |
权限以三个三位字符表示,如:rwxr-xr--
二、查看权限信息
使用 ls -l 查看文件权限:
bash
ls -l /etc/passwd输出示例:
bash
-rw-r--r-- 1 root root 2626 Jun 25 12:00 /etc/passwd表示:
- 所有者:root(rw-)
- 所属组:root(r--)
- 其他用户:r--
三、修改权限与所有者
1. 修改文件权限 chmod
bash
chmod u+x script.sh # 给所有者添加执行权限
chmod 644 file.txt # 使用数字表示权限数字权限说明:
- 读 = 4,写 = 2,执行 = 1
- 644 = 所有者 rw- (6),组 r-- (4),其他 r-- (4)
2. 修改所有者与组 chown
bash
sudo chown user:group filename
sudo chown -R user:group /var/www/3. 修改所属组 chgrp
bash
sudo chgrp admin myfile.txt四、用户组管理
- 每个用户可以属于多个组
- 文件访问优先以所属组判断权限
相关命令:
bash
groups username # 查看用户所属组
sudo usermod -aG group user # 添加附加组五、默认权限设置(umask)
查看或设置默认权限掩码:
bash
umask
umask 022 # 默认权限为 755(文件)或 644(文本)六、特殊权限
1. SUID / SGID / Sticky Bit
- SUID (Set User ID):执行程序以文件所有者身份运行
- SGID (Set Group ID):新建文件继承目录组
- Sticky Bit:只允许文件所有者删除(常用于
/tmp)
设置示例:
bash
chmod u+s /usr/bin/passwd # 设置 SUID
chmod g+s /shared/folder # 设置 SGID
chmod +t /tmp # 设置 Sticky Bit七、权限管理建议
- 禁止文件夹给所有用户写权限(如
chmod 777) - 限制脚本和程序的执行权限
- 日志文件设为只读并归属特定用户组
- 使用组控制访问共享目录更安全灵活
Linux 的权限机制虽然看似复杂,但一旦掌握,就能高效地保护系统资源并实现灵活的访问控制策略。
