在Linux系统中,文件权限是保障系统安全与数据隔离的核心机制,它决定了不同用户对文件的读取、写入和执行权限,理解文件权限的表示方法、修改命令以及底层逻辑,是每个Linux用户必备的基础技能,本文将系统介绍Linux文件权限的查看、修改及高级应用,帮助读者全面掌握这一重要概念。

文件权限的表示:从符号到数字
Linux文件权限通过三组字符表示,分别对应文件所有者(Owner)、所属组(Group)及其他用户(Others)的权限,每组权限由三个基本操作组成:读取(Read)、写入(Write)和执行(Execute),分别用字母r、w、x表示,若某用户没有对应权限,则用代替。
权限字符串-rwxr-xr--的含义如下:
- 第1位表示文件类型(为普通文件,
d为目录,l为符号链接); - 第2-4位
rwx表示文件所有者拥有读、写、执行权限; - 第5-7位
r-x表示所属组用户拥有读和执行权限,无写入权限; - 第8-10位
r--表示其他用户仅拥有读权限。
除了符号表示,Linux还使用数字表示权限,称为“八进制权限”,每个基本操作对应一个数值:r=4、w=2、x=1,将三组权限的数值相加,即可得到数字权限。
rwx= 4+2+1 = 7r-x= 4+0+1 = 5r--= 4+0+0 = 4
-rwxr-xr--对应的数字权限为755。
查看文件权限:ls命令详解
查看文件权限最常用的命令是ls,结合不同选项可获取详细信息。
基础查看:ls -l
ls -l(长格式列表)会显示文件的详细权限信息,
-rw-r--r-- 1 user group 1024 Oct 20 10:30 example.txt
各字段含义如下:
- 第1位:文件类型(为文件,
d为目录); - 第2-10位:文件权限(如
rw-r--r--); - 第11位:硬链接数量(文件为1,目录子目录数+2);
- 第12-13位:所有者(
user); - 第14-19位:所属组(
group); - 第20-24位:文件大小(
1024字节); - 第25-30位:修改日期(
Oct 20 10:30); - 第31位之后:文件名(
example.txt)。
显示隐藏文件:ls -a
ls -a会显示所有文件,包括以开头的隐藏文件,例如ls -la可同时查看隐藏文件的详细信息。
以数字形式显示权限:ls -l --numeric-uid-gid
若需直接查看数字权限,可使用ls -l的扩展选项,或通过stat命令获取更详细的信息:

stat example.txt
输出中会明确显示Access: (0644/-rw-r--r--),即数字权限644。
修改文件权限:chmod命令
chmod(Change Mode)用于修改文件或目录的权限,支持符号模式和数字模式两种操作方式。
符号模式修改
符号模式通过[用户类型][操作][权限]的格式修改权限,用户类型包括:
u(User,所有者)g(Group,所属组)o(Others,其他用户)a(All,所有用户)
操作符包括:
- (添加权限)
- (移除权限)
- (设置精确权限)
示例:
- 给所有者添加执行权限:
chmod u+x example.txt - 移除所属组的写入权限:
chmod g-w example.txt - 为其他用户设置仅读权限:
chmod o=r example.txt - 为所有用户添加读写权限:
chmod a+rw example.txt
数字模式修改
数字模式直接通过三组数字设置权限,语法为chmod [数字权限] 文件名。注意:数字权限会覆盖原有权限,而非叠加。
示例:
- 设置权限为
755(所有者rwx,所属组r-x,其他用户r-x):chmod 755 example.txt - 设置权限为
644(所有者rw-,所属组r--,其他用户r--):chmod 644 example.txt - 为目录设置
777权限(不推荐,存在安全风险):chmod -R 777 /path/to/directory(-R表示递归修改目录及其内容)
特殊权限:SUID、SGID、Sticky Bit
除基本权限外,Linux还支持特殊权限,用于特定场景:

- SUID(Set User ID):文件执行时以所有者身份运行(如
/usr/bin/passwd),权限位为s(所有者执行位),数字权限为4,例如chmod 4755 file。 - SGID(Set Group ID):文件执行时以所属组身份运行,或目录新建文件继承所属组(如
/var/www),权限位为s(所属组执行位),数字权限为2,例如chmod 2755 dir。 - Sticky Bit:仅目录有效,用户只能删除自己的文件(如
/tmp),权限位为t(其他用户执行位),数字权限为1,例如chmod 1777 dir。
文件所有者与所属组管理
权限管理不仅涉及操作权限,还包括所有者和所属组的控制,主要通过chown和chgrp命令实现。
修改所有者:chown
语法:chown [所有者][:][所属组] 文件名
- 仅修改所有者:
chown user example.txt - 同时修改所有者和所属组:
chown user:group example.txt - 递归修改目录及其内容:
chown -R user:group /path/to/directory
修改所属组:chgrp
语法:chgrp [所属组] 文件名
- 示例:
chgrp group example.txt
目录权限的特殊规则
目录权限与文件权限有本质区别:
- 读权限(r):允许查看目录内容(如
ls命令)。 - 写权限(w):允许在目录中创建、删除或重命名文件(需配合目录的执行权限)。
- 执行权限(x):允许进入目录(如
cd命令)和访问目录内的文件内容。
重要规则:
- 访问目录中的文件,需同时拥有目录的
x权限和文件的r/w权限。 - 删除目录中的文件,需拥有目录的
w和x权限,但不一定需要文件的w权限(除非文件被硬链接)。
目录的常见权限为755(所有者可读写执行,其他用户可读执行)或750(仅所属组可访问)。
权限查看与修改的最佳实践
- 最小权限原则:仅授予用户完成任务的必要权限,避免过度开放权限(如
777)。 - 使用
umask控制默认权限:umask决定新建文件和目录的默认权限,例如umask 022新建文件权限为644(666-022),目录为755(777-022)。 - 定期审计权限:通过
find命令查找异常权限文件,如find / -type f -perm /u+w(查找所有用户可写的文件)。 - 谨慎使用递归修改:
chmod -R可能误修改子目录权限,建议先测试。
常见问题与解决方案
- “Permission denied”错误:检查文件权限、所有者及所属组,必要时使用
sudo提权。 - 无法删除文件:确认目录的
w和x权限,或使用sudo chown修改所有者。 - 脚本无法执行:确保文件有
x权限(chmod +x script.sh),或使用bash script.sh直接执行。
读者可全面掌握Linux文件权限的查看、修改及管理逻辑,权限管理是Linux系统安全的基石,合理设置权限不仅能保护数据安全,还能提升系统管理的效率,在实际操作中,建议结合具体场景灵活运用符号模式与数字模式,并遵循最小权限原则,确保系统稳定运行。

















