Linux 系统通过严格的文件权限机制保障资源安全,权限分为用户(User)、组(Group)、其他(Others)三组,每组包含读(r)、写(w)、执行(x)三种基本权限。查看权限可通过ls -l命令获取详细信息,或用stat命令查看完整权限数据。修改权限主要使用
chmod命令,支持符号模式(如u+x为用户添加执行权)和数字模式(如755代表用户读写执行、组和其他读执行)。此外,
chown和
chgrp命令可修改文件所有者与所属组,特殊权限位(SUID、SGID、粘滞位)则用于实现临时权限提升、权限继承等高级功能。合理配置权限是维护
Linux 系统安全与稳定的核心操作。
在 Linux 系统中,每个文件和目录都有三组权限,分别对应三种身份:
- 用户(User):文件所有者
- 组(Group):文件所属组的成员
- 其他(Others):非所有者且不在所属组的用户
每组权限包含三种基本权限:
- 读(Read,r):数值表示为 4
- 写(Write,w):数值表示为 2
- 执行(Execute,x):数值表示为 1
- 无权限(-):数值表示为 0
输出示例:
-rw-r--r-- 1 user group 1024 May 10 14:30 filename
权限部分解析:
- 第一位:文件类型(
-
表示普通文件,d
表示目录,l
表示链接等)
- 第 2-4 位:用户权限(如
rw-
表示用户有读写权限)
- 第 5-7 位:组权限(如
r--
表示组用户只有读权限)
- 第 8-10 位:其他用户权限(如
r--
表示其他用户只有读权限)
输出示例:
File: filename
Size: 1024 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 123456 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ group)
Access: 2025-07-10 14:30:00.000000000 +0800
modify: 2025-07-10 14:30:00.000000000 +0800
Change: 2025-07-10 14:30:00.000000000 +0800
Birth: -
其中Access: (0644/-rw-r--r--)
表示文件权限为 644(用户读写,组和其他用户只读)。
语法:
chmod [who][operator][permission] filename
- who:
u
(用户)、g
(组)、o
(其他)、a
(所有)
- operator:
+
(添加权限)、-
(移除权限)、=
(设置权限)
- permission:
r
、w
、x
示例:
chmod u+x filename
chmod g-w filename
chmod a+r filename
chmod u=rw,g=r,o=r filename
语法:chmod [mode] filename
- mode:三位数字,分别代表用户、组、其他的权限数值之和
示例:
chmod 644 filename
chmod 755 filename
chmod 777 filename
chown newuser filename
chown -R newuser directory
chgrp newgroup filename
chgrp -R newgroup directory
chown newuser:newgroup filename
- 作用:让执行该程序的用户临时拥有程序所有者的权限
- 设置:
chmod u+s filename
(数字模式:4000 + 原权限)
- 示例:
- 作用:让执行该程序的用户临时拥有程序所属组的权限,对目录设置时,新创建的文件会继承目录的所属组
- 设置:
chmod g+s filename/directory
(数字模式:2000 + 原权限)
- 示例:
- 作用:主要用于目录,限制只有文件所有者或 root 才能删除该目录下的文件
- 设置:
chmod o+t directory
(数字模式:1000 + 原权限)
- 示例:
echo "#!/bin/bash" > script.sh
echo "echo Hello, World!" >> script.sh
chmod +x script.sh
chmod 755 script.sh
find /path/to/directory -type d -exec chmod 755 {} \;
find /path/to/directory -type f -exec chmod 644 {} \;
- 谨慎使用 777 权限:可能导致安全风险
- SUID/SGID 权限风险:仅对必要的程序设置
- 使用 - R 参数需谨慎:递归修改权限可能影响系统文件
- root 权限要求:修改其他用户的文件或系统文件需要 root 权限
通过以上方法,你可以灵活管理 Linux 系统中的文件权限,确保
系统安全并满足应用需求。