|
这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 傲来云 于 2025-5-22 14:43 编辑
很多刚接触 Linux 的朋友,经常遇到“权限不够”、“Permission denied”等问题,其实 Linux 权限看起来复杂,但掌握几个核心点就很好理解了。
这篇文章我用自己的理解把 Linux 文件权限的重点讲一下,大家也可以留言一起讨论。
1. 看懂权限结构
我们用 ls -l 看一个文件权限是这样的:
- -rw-r--r-- 1 root root 1234 May 15 test.txt
复制代码 这串信息的第一部分 -rw-r--r-- 就是文件权限,总共 10 位:
第1位:- 表示是普通文件,d 表示目录,l 表示链接。
后面的 9 位,每 3 个分一组,分别代表:
用户(owner)
组(group)
其他人(others)
rw-:表示有读(r)、写(w)、无执行(-)权限。
所以上面这个文件的意思是:
所有者可以读写;
同组用户可以读;
其他人也可以读。
2. 常用命令总结
更改权限:数字对应的权限是:
7 = 4(读) + 2(写) + 1(执行)
755 = 用户全部权限,组和其他人只有读和执行权限
也可以用字符方式:- chmod u+x test.sh # 给用户加执行权限
- chmod o-w test.txt # 去掉其他人的写权限
复制代码 更改属主/属组:这是常见问题,比如你用 root 解压文件,但 web 服务跑在 www 用户下,访问时就报权限错误,这时候 chown 就有用了。
3. 日常问题举例
网站打不开,日志里提示权限拒绝?
看看是不是文件或者目录没有给 nginx 用户读权限,或者没有执行权限(目录需要执行权限才能“进入”)。
上传文件提示失败?
上传目录没给写权限(w)或属主不对。
脚本不能执行?
加执行权限即可:
4. 小建议
不要随便给 777,虽然省事,但风险大,权限过大容易被滥用。
网站目录一般给 755,文件给 644 就足够了。
看不懂问题时,可以用 ls -l 和 ps aux 配合起来看服务用的用户是谁,再检查文件属主是否一致。
|
|