Linux 文件权限详解与实操命令
一、查看文件权限
1️⃣ 查看当前目录下所有文件权限
ll
2️⃣ 查看指定文件权限
ls -l messages
示例输出:
-rw-r--r-- 1 root root 143883 6月 30 15:30 messages
二、文件类型标识
标志 | 含义 |
---|---|
- | 普通文件 (file) |
d | 目录 (directory) |
l | 软链接 (link) |
b | 块设备文件 (block device) |
c | 字符设备文件 (character device) |
三、用户与用户组
符号 | 含义 |
---|---|
u | 文件所有者(user) |
g | 文件所属组(group) |
o | 其他用户(other) |
a | 所有用户(all,即 u+g+o) |
四、权限类型与含义
权限 | 含义 | 数值表示 |
---|---|---|
r | 读(read) | 4 |
w | 写(write) | 2 |
x | 执行(execute) | 1 |
- | 无权限 | 0 |
数值权限 = 读写执行的加和。例如:
rw-
= 4 + 2 + 0 = 6
r-x
= 4 + 0 + 1 = 5
五、常见权限组合示例
权限 | 数字 | 含义 |
---|---|---|
-rw------- | 600 | 仅所有者可读写 |
-rw-r--r-- | 644 | 所有者可读写,组和其他人只读 |
-rwx------ | 700 | 仅所有者可读写执行 |
-rwxr-xr-x | 755 | 所有者可读写执行,组和其他人可读执行 |
-rwx--x--x | 711 | 所有者可读写执行,组和其他人仅执行 |
-rw-rw-rw- | 666 | 所有人可读写 |
-rwxrwxrwx | 777 | 所有人可读写执行 |
-rw-rw-r-- | 664 | 所有者与组可读写,其他人只读 |
修改文件权限示例:
chmod 644 messages.txt
六、权限字段解析
示例:
-rw-r--r--+ 1 root root 143883 6月 30 15:30 messages
区域 | 含义 |
---|---|
- | 文件类型(文件) |
rw- | 所有者权限:读、写 |
r-- | 所属组权限:读 |
r-- | 其他人权限:读 |
+ | 表示文件设置了 ACL(Access Control List) |
root | 文件所有者 |
root | 文件所属组 |
七、修改文件权限命令
1️⃣ 添加或删除权限
操作 | 命令 | 示例 |
---|---|---|
添加权限 | chmod o+r 文件名 | 给其他人添加读权限 |
删除权限 | chmod o-r 文件名 | 删除其他人的读权限 |
设置精确权限 | chmod 755 文件名 | 设置为 rwxr-xr-x |
八、修改文件属主与属组
修改所属组
chgrp 组名 文件名
修改所有者
chown 用户名 文件名
同时修改用户和组
chown 用户名:组名 文件名
九、ACL 权限操作(Access Control List)
ACL 是传统权限之外的扩展机制,可对特定用户或组单独定义权限。
查看 ACL 权限
getfacl 文件名
添加 ACL 权限(为指定用户添加权限)
setfacl -m u:zabbix:rw- 文件名
添加只读权限
setfacl -m u:zabbix:r-- /var/log/messages
删除 ACL 权限
setfacl -b 文件名
十、常见使用场景示例
场景 | 命令 |
---|---|
所有用户都能访问共享目录 | chmod 777 /home/share |
仅 zabbix 用户能读写日志 | setfacl -m u:zabbix:rw- /var/log/messages |
限制其他用户访问私有文件 | chmod 700 ~/.ssh/id_rsa |
修改某目录属主为 nginx | chown nginx:nginx /usr/share/nginx/html -R |
总结
chmod → 修改权限
chown/chgrp → 修改所有者和组
setfacl/getfacl → ACL 细粒度权限控制
数字与字母权限可以互换理解,644、755、700 是最常用的模式。
熟悉文件权限不仅可以提升系统安全性,也能在故障排查、运维自动化中避免很多意外问题。