理解Linux权限基础
-
权限三元组
- r(读):查看文件/目录内容
- w(写):修改或删除
- x(执行):运行程序或进入目录
通过ls -l
查看权限(如-rwxr--r--
表示所有者有读写执行,同组和其他用户仅有读权限)。
-
权限对象
- 用户(User):文件所有者
- 组(Group):共享权限的用户集合
- 其他(Others):系统所有其他用户
更改文件/目录权限(chmod命令)
方法1:符号模式(直观)
chmod [角色][操作][权限] 文件名
- 角色:
u
(用户)、g
(组)、o
(其他)、a
(全部) - 操作:(添加)、(移除)、(精确设置)
- 示例:
chmod u+x script.sh # 给所有者添加执行权限 chmod go-w file.txt # 移除组和其他用户的写权限 chmod a=rw shared.conf # 所有用户仅保留读写权限
方法2:数字模式(高效)
用三位八进制数表示权限(r=4, w=2, x=1):
chmod 755 backup.sh # 所有者:rwx(7),组和其他:r-x(5)
常见组合:
644
:所有者读写,其他只读(默认文件权限)750
:所有者rwx,组r-x,其他无权限777
:慎用!所有用户可读写执行(安全风险)
更改文件所有者(chown命令)
chown 新所有者:新组 文件名
- 示例:
chown alice report.txt # 仅修改所有者 chown alice:developers /data/ # 同时修改所有者和组 chown -R www:www /var/html/ # -R递归修改目录下所有文件
管理用户组权限
-
创建/删除组
sudo groupadd developers # 创建组 sudo groupdel testers # 删除组
-
修改用户所属组
sudo usermod -aG developers alice # 将alice加入developers组(-aG保留原组) sudo usermod -g www-data nginx # 更改用户主组
-
检查用户组
groups alice # 查看alice所属组 id alice # 显示用户及组ID
特殊权限设置
-
SUID(以所有者身份运行)
chmod u+s /usr/bin/backup_tool # 设置SUID(数字模式4000)
-
SGID(目录内新建文件继承组)
chmod g+s /shared/ # 设置SGID(数字模式2000)
-
Sticky Bit(仅所有者可删文件)
chmod +t /tmp/ # 设置粘滞位(数字模式1000)
图形界面操作(适合新手)
- 文件管理器:右键文件 → 属性 → 权限标签页,可视化修改所有者、组及权限。
- 用户管理工具:
- Ubuntu:
sudo users-admin
- CentOS:
sudo system-config-users
- Ubuntu:
关键安全建议
- 最小权限原则:用户只获必要权限(如Web目录用
755
而非777
)。 - 避免root日常操作:用
sudo
临时提权,降低误操作风险。 - 定期审计权限:
find / -perm -4000 -ls # 检查所有SUID文件(潜在风险点)
- 敏感文件保护:
chmod 600 ~/.ssh/id_rsa # 密钥文件仅用户可读写
常见问题解决
- Q:权限拒绝(Permission denied)怎么办?
→ 检查路径权限:ls -ld /path
;确认用户是否在相关组中。 - Q:chmod报错”Operation not permitted”?
→ 需root权限操作的文件,使用sudo
执行命令。 - Q:用户无法访问目录?
→ 目录需x
权限才能进入,文件需r
权限读取。
:Linux权限管理依赖chmod
、chown
、usermod
等命令,核心是平衡安全与便利,始终遵循最小权限原则,并定期审查系统权限设置。
引用说明参考Linux官方文档(kernel.org)、Ubuntu手册(help.ubuntu.com)及Red Hat系统管理指南(access.redhat.com),遵循POSIX标准权限规范,命令行示例已在CentOS 9及Ubuntu 22.04实测验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7572.html