Linux chmod权限管理完全指南【临时标记:删除即可】
1. 你一定遇到过的权限坑【临时标记:删除即可】
作为Linux程序员,你肯定踩过这些坑:
- 写好的脚本一运行就弹Permission denied
chmod就是Linux世界里的「钥匙管理员」,能给不同用户分配不同的文件访问权限,这篇文章用WeMD原生语法给你讲透。
2. 基础:Linux权限位到底是什么?【临时标记:删除即可】
用ls -l命令查看文件,会得到下面的结果:
-rwxr-xr-- 1 dd dd 1024 Mar3 10:00 test.sh
开头的-rwxr-xr--就是权限位,我们拆成4段来看:
2.1 三个用户身份【临时标记:删除即可】
- g(Group):文件的所属组,同组用户共享组权限
- o(Others):其他人,既不是所有者也不在所属组的用户
2.2 三种基础权限【临时标记:删除即可】
r、w、x对文件和目录的作用完全不同,新手很容易搞混:
| | |
|---|
| r(Read,读) | | |
| w(Write,写) | | |
| x(Execute,执行) | | |
💡提示
【临时标记:删除即可】 小技巧:目录如果没有x权限,哪怕给了r权限,你也cd不进去,只能看着文件名干着急!
3. 权限的两种表示方法【临时标记:删除即可】
chmod支持两种设置权限的方式,分别适合不同场景。
3.1 数字表示法(简单直接,日常首选)【临时标记:删除即可】
核心规则:r=4,w=2,x=1,把对应权限的数字相加,就是一组权限值。
新手必记的3个常用权限组合:
- 755:所有者rwx,同组和其他人rx,适合可执行脚本、公开目录
- 644:所有者rw,同组和其他人r,适合普通代码、配置文件
- 700:所有者rwx,其他人无权限,适合私密文件、个人目录
3.2 符号表示法(灵活精细,适合单权限调整)【临时标记:删除即可】
格式:chmod [身份][操作][权限] 文件名
- 操作可选:+(添加权限)、-(移除权限)、=(覆盖设置权限)
常用示例:
# 给脚本的所有者添加执行权限,解决Permission deniedchmod u+x test.sh# 给同组用户移除写权限,防止误改文件chmod g-w project.conf# 把其他人的权限直接设置为只读chmod o=r-- readme.md
4. 实战场景与避坑指南【临时标记:删除即可】
4.1 高频使用场景【临时标记:删除即可】
# 给配置文件设置644权限chmod 644 config.ini# 递归修改整个项目目录的权限(慎用!)chmod -R 755 my_project/
⚠️警告
【临时标记:删除即可】 重点警告:-R递归参数一定要慎用!尤其是chmod -R 777 /,会直接毁掉你的系统!
🚨危险
【临时标记:删除即可】 危险提醒:就算是普通目录,也尽量不要用777权限,这等于完全放弃了Linux的安全防护,有极高的被入侵风险!
4.2 配合chown修改文件所有者【临时标记:删除即可】
如果你不是文件的所有者,就算是root也没法直接改权限,需要先用chown修改所有者:
# 把test.sh的所有者改为dd,所属组改为dev_teamsudo chown dd:dev_team test.sh
ℹ️备注
【临时标记:删除即可】 补充说明:chown和chmod是Linux权限管理的黄金搭档,一个管「谁能碰」,一个管「能做什么」。
📌重要
【临时标记:删除即可】 核心原则:Linux权限管理的核心是「最小权限原则」,够用就好,不要给多余的权限!
5. 总结【临时标记:删除即可】
chmod的核心逻辑非常简单,只要记住两点:
- 三个身份:u(所有者)、g(所属组)、o(其他人)
- 三种权限:r(读)、w(写)、x(执行),对文件和目录的作用完全不同
根据你的场景选择对应的设置方式: