什么是文件权限?
每个Linux文件都有3组权限:
每组权限有3种:
- 读(r)- 可查看
- 写(w)- 可修改
- 执行(x)- 可运行(脚本、程序)
查看权限
用 ls -l 查看:
输出:
1
| -rwxr-xr-- 1 user group 1024 Feb 13 10:00 file.txt
|
前10个字符分解:
- 第1位:文件类型(
-普通文件,d目录)
- 第2-4位:所有者权限(
rwx)
- 第5-7位:所属组权限(
r-x)
- 第8-10位:其他人权限(
r--)
chmod - 修改权限
数字表示法
权限用数字表示:
- 4 = 读(r)
- 2 = 写(w)
- 1 = 执行(x)
三种组合:
- 7 = 4+2+1 = rwx(读写执行)
- 6 = 4+2 = rw-(读写)
- 5 = 4+1 = r-x(读执行)
- 4 = r–(只读)
- 0 = —(无权限)
基本用法
1 2 3
| chmod 755 file.txt chmod 644 file.txt chmod 777 file.txt
|
带目录递归
1
| chmod -R 755 /path/to/dir
|
符号表示法
1 2 3 4 5 6
| chmod +x script.sh chmod -w file.txt chmod u+x file.txt chmod g+w file.txt chmod o+r file.txt chmod a+rw file.txt
|
常用权限值
| 权限 |
含义 |
适用场景 |
| 755 |
rwxr-xr-x |
脚本、可执行文件 |
| 644 |
rw-r–r– |
配置文件、普通文件 |
| 600 |
rw——- |
私钥、敏感文件 |
| 777 |
rwxrwxrwx |
临时共享目录(谨慎) |
chown - 修改所有者
基本用法
1 2 3
| chown user file.txt chown user:group file.txt chown :group file.txt
|
递归修改
1
| chown -R user:group /path/to/dir
|
查看所有者和组
实战场景
场景1:部署网站
1 2 3
| chown -R www-data:www-data /var/www/html chmod -R 755 /var/www/html
|
场景2:SSH私钥
1 2
| chmod 600 ~/.ssh/id_rsa
|
场景3:脚本无法执行
场景4:目录无法进入
特殊权限
SUID(4开头)
SGID(2开头)
Sticky Bit(1开头)
常见问题
Q: 为什么我改了权限还是没权限?
A: 可能是父目录没有执行权限,或挂载点权限限制。
Q: chmod 777 安全吗?
A: 不安全!不要给所有文件777权限,只按需给最小权限。
Q: root能修改任何文件吗?
A: 是的,root用户不受权限限制。
总结
- 权限三组:所有者、组、其他人
- 权限三种:读4、写2、执行1
chmod 改权限,chown 改所有者
- 递归用
-R 参数
- 最小权限原则:只给需要的权限
下一篇:定时任务crontab。