linux文件权限深入了解(上)
2026/6/10 8:20:57 网站建设 项目流程

Linux 一切皆文件,权限是系统安全与访问控制的核心。

1.先看懂 ls -l 权限字段


执行 ls -l 查看文件 / 目录详情,输出第一列共 10 个字符,分为两大块:

-rw-r--r-- 1 root root 120 Jun 9 14:00 a.txt drwxr-xr-x 2 root root 4096 Jun 9 14:01 mydir

10 位权限拆分:

位置含义说明
第 1 位文件类型-普通文件、d目录、l软链接、b块设备、c字符设备
2~4 位属主权限 (u)文件所有者的权限
5~7 位属组权限 (g)文件所属用户组的权限
8~10 位其他用户权限 (o)系统内其余所有用户的权限

简写标识:
1.u = 属主(user)
2.g = 属组(group)
3.o = 其他用户(other)
4.a = 所有人(all,u+g+o)

2.r /w/x 权限含义(文件 vs 目录 完全不同)

权限字符只有三个:r(读)、w(写)、x(执行),对文件和目录作用天差地别,这是最容易踩坑的点。

1. 对【普通文件】的作用

文件的核心是内容

  • r (Read 可读):可以查看文件内容(cat/less/vim浏览)
  • w (Write 可写):可以修改、覆盖、追加文件内容
  • x (Execute 可执行):文件是脚本 / 程序时,能够运行它(./xxx.sh
2. 对【目录】的作用

目录的核心是进入、浏览、管理内部文件

  • r (可读):仅能ls列出目录内的文件名,无法 cd 进入、无法访问内部文件
  • w (可写):可以在目录内新建、删除、重命名文件 / 子目录(重点:删除文件看父目录 w 权限,不是文件本身)
  • x (可执行):可以cd 进入目录、正常访问目录内文件(目录必须有 x 权限才能正常使用)
3.易错示例(目录权限坑)

现有目录权限:drw-r--r--(有 r、w,无 x)

  1. ls mydir→ 能看到里面的文件名(r 生效)
  2. cd mydir→ 报错Permission denied(无 x,无法进入)
  3. cat mydir/a.txt→ 同样报错(无 x,无法访问内部文件)

3.权限两种表示方式:符号模式 + 八进制数字模式


1. 八进制数字权限(工作最常用)


规则:r=4、w=2、x=1、-=0
每组权限(u/g/o)单独求和,三组数字组成完整权限。
计算示例:


例 1:属主 rwx、属组 r-x、其他 r-x


属主:4+2+1 = 7
属组:4+0+1 = 5
其他:4+0+1 = 5
完整权限:755 → 对应字符 rwxr-xr-x


例 2:属主 rw-、属组 r--、其他 r--


属主:4+2+0 = 6
属组:4+0+0 = 4
其他:4+0+0 = 4
完整权限:644 → 对应字符 rw-r--r--

高频常用权限对照表:

八进制字符权限适用场景
644-rw-r--r--普通文本文件(默认文件权限)
755drwxr-xr-x普通目录、可执行程序(默认目录权限)
600-rw-------私密文件(仅自己可读可写)
700drwx------私人目录(仅自己能进入 / 操作)
777rwxrwxrwx全开权限(生产环境禁止使用,安全风险极高
2. 符号权限模式(局部修改权限,不改动原有位)

格式:[u/g/o/a] [+/-/=] [r/w/x]

  • +:增加权限
  • -:移除权限
  • =:直接设置为指定权限(覆盖原有)

示例:

  1. u+x:给属主增加执行权限
  2. o-r:移除其他用户的读权限
  3. g=rw:把属组权限设置为 读 + 写

4.核心权限命令 + 完整实战举例

命令 1:chmod 修改文件 / 目录权限
语法:

chmod [选项] 权限 文件/目录

常用选项:
-R:递归修改(目录及其内部所有文件 / 子目录)


场景 1:数字模式(推荐,简单高效)


普通文件设为标准权限 644:

chmod 644 a.txt # 结果:-rw-r--r--

目录设为标准权限 755,递归内部所有内容:

chmod -R 755 mydir/ # 目录结果:drwxr-xr-x

私密文件(仅自己读写)600:

chmod 600 secret.txt # 结果:-rw-------

私人目录(仅自己访问)700:

chmod 700 private_dir/ # 结果:drwx------
场景 2:符号模式(局部微调)


给 Shell 脚本增加执行权限:

chmod u+x run.sh # 原权限 -rw-r--r-- → 变为 -rwxr--r--

所有人设为只读权限:

chmod a=r a.txt # 结果:-r--r--r--

移除属组所有权限:

chmod g= a.txt # 属组位变为 ---
谢谢

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询