Linux 文件权限是操作系统安全性的核心机制,决定了不同用户对文件的访问能力,理解并掌握文件权限的修改方法,是 Linux 系统管理的基础技能,本文将从权限基础概念出发,逐步讲解修改文件权限的核心命令、场景应用及注意事项,帮助读者全面掌握 Linux 权限管理。

Linux 文件权限的基础概念
Linux 中的每个文件和目录都关联三类用户:文件所有者(User)、所属组(Group)及其他用户(Others),每类用户对应的权限分为读(Read)、写(Write)、执行(Execute),分别用字母 r(4)、w(2)、x(1)表示,权限通过 9 位二进制数存储,通常以 rwx 形式显示,rwxr-xr-- 表示:
- 文件所有者:读、写、执行(
rwx= 7) - 所属组:读、执行(
r-x= 5) - 其他用户:读(
r--= 4)
文件类型(如普通文件 、目录 d、符号链接 l)会显示在权限首位,-rwxr-xr-- 是普通文件,drwxr-xr-x 是目录。
核心命令:chmod 修改权限
chmod(Change Mode)是修改文件权限的核心命令,支持符号模式和数字模式两种操作方式。
符号模式:直观修改权限
符号模式通过 [用户类型][操作符][权限] 组合修改权限,用户类型包括:
u(所有者)、g(所属组)、o(其他用户)、a(所有用户,即u+g+o)
操作符包括:- (添加权限)、(移除权限)、(设置精确权限)
示例:
- 给所有者添加执行权限:
chmod u+x script.sh - 移除所属组的写权限:
chmod g-w document.txt - 为所有用户设置读权限:
chmod a=r data.log(覆盖原有权限)
数字模式:快速批量修改
数字模式通过 3 位数字直接设置权限,每类用户对应一位数字(读 4、写 2、执行 1),数字相加得到组合权限。
755:所有者7(rwx),所属组5(r-x),其他用户5(r-x)644:所有者6(rw-),所属组和其他用户4(r--)
示例:

- 设置脚本可执行:
chmod 755 script.sh - 设置文件仅所有者可读写:
chmod 600 private.key
递归修改目录权限
使用 -R 选项可递归修改目录及其内容的权限,chmod -R 755 /path/to/directory(需谨慎使用,避免误修改子文件权限)。
修改所有者与所属组:chown 命令
文件权限不仅与权限位相关,还与所有者和所属组绑定。chown(Change Owner)用于修改文件所有者,chgrp(Change Group)用于修改所属组,但 chown 可同时完成两者操作。
修改所有者
语法:chown [用户名] [文件/目录]
示例:chown alice report.pdf(将文件所有者改为 alice)
修改所属组
语法:chown :[组名] [文件/目录]
示例:chown :developers project/(将目录所属组改为 developers)
同时修改所有者和所属组
语法:chown [用户名]:[组名] [文件/目录]
示例:chown bob:staff data/(将所有者设为 bob,所属组设为 staff)
递归修改所有者和所属组
使用 -R 选项:chown -R alice:admin /path/to/directory(递归修改目录及其所有内容的所有者和所属组)。
常见场景下的权限操作
设置可执行脚本权限
Shell 脚本需赋予执行权限才能直接运行:

chmod +x myscript.sh # 符号模式 chmod 755 myscript.sh # 数字模式
执行后可通过 ./myscript.sh 运行。
限制目录访问权限
目录的 x 权限代表“进入目录”的能力,若需禁止其他用户访问目录:
chmod 700 private_dir/ # 仅所有者可读、写、进入
批量修改特定文件权限
结合 find 命令可批量修改符合条件的文件权限,例如将所有 .log 文件权限设为 644:
find /var/log -type f -name "*.log" -exec chmod 644 {} \;
特殊权限:SetUID、SetGID、Sticky Bit
除基础权限外,Linux 还支持特殊权限,用于特殊场景:
- SetUID(4):文件执行时以所有者权限运行(如
/usr/bin/passwd,普通用户可修改密码); - SetGID(2):目录下新建文件自动继承所属组权限(如团队共享目录);
- Sticky Bit(1):仅文件所有者可删除文件(如
/tmp目录,防止他人误删)。
设置示例:chmod 4755 suid_file(SetUID)、chmod 2775 sgid_dir(SetGID)、chmod 1775 sticky_dir(Sticky Bit)。
注意事项与最佳实践
- 避免滥用 777 权限:
chmod 777 file会开放所有权限,存在安全风险,仅在临时调试时使用。 - 递归修改需谨慎:
chmod -R会递归修改所有子文件和目录,可能导致权限误设,建议先备份或使用find精确匹配。 - 理解文件与目录权限差异:目录的
w权限允许创建/删除文件,x权限允许进入,两者缺一不可。 - 查看权限细节:使用
ls -l查看基础权限,ls -ld查看目录权限,stat命令可查看完整权限信息(包括特殊权限)。
掌握 Linux 文件权限修改不仅是系统管理的必备技能,更是保障系统安全的关键,通过理解权限机制、熟练使用 chmod 和 chown 命令,并结合场景灵活应用,可有效管理文件访问控制,确保系统稳定运行。



















