新手学 Linux 别死啃命令!第三篇:文件所有者及权限,读懂属性精细管控权限
前言
上一篇我们掌握了 Linux 用户与用户组管理,而文件权限是 Linux 安全体系的核心。系统依靠「所有者、所属组、其他用户」三类身份划分访问权限,搭配权限字符、数字、chmod/chown 命令,就能精准控制谁能读、写、执行文件。
本篇详解文件属性、文件类型、权限规则、权限修改命令、目录特殊权限以及 umask 默认权限计算,学完就能彻底看懂 ls -l 输出,灵活配置文件与目录权限。
一、完整文件属性结构
执行 ls -l 命令,每一行内容分为 7 个字段,从左到右依次为:文件类型及权限 → 硬链接数 → 文件拥有者 → 文件所属组 → 文件大小 → 最后修改时间 → 文件名
示例:
-rw-r--r-- 1 root root 128 6月 10 10:20 test.txt
二、文件类型(属性第一位字符)
属性串第一个字符用于区分文件类型,常见标识如下:
| 标识 | 文件类型说明 |
|---|---|
- | 普通文本 / 二进制文件 |
d | 目录(文件夹) |
l | 软链接(快捷方式) |
c | 字符设备文件(串口、键盘等) |
b | 块设备文件(硬盘、U 盘等存储设备) |
p | 管道文件 |
s | 套接字文件(进程间通信使用) |
三、文件权限详解(第 2~10 位字符)
ls -l 中第 2~10 位共 9 个字符,分为三组,分别对应三类用户,也是权限管控的核心。
1. 权限分组对应关系
- 第 2~4 位:文件所有者 权限,简写
u(user) - 第 5~7 位:文件所属组 权限,简写
g(group) - 第 8~10 位:其他用户 权限,简写
o(other) - 简写
a(all):代表所有用户(u+g+o)
2. 基础权限标识与数值
Linux 用三种基础权限,同时支持字符模式和数字模式两种表示方式:
| 权限字符 | 含义 | 对应数值 |
|---|---|---|
r | 可读(read) | 4 |
w | 可写(write) | 2 |
x | 可执行(execute) | 1 |
规则:每组权限数值 = 对应权限数字相加,例如
rwx= 4+2+1 = 7,r--= 4
3. 权限操作符号
用于字符模式修改权限:
+:增加指定权限-:移除指定权限=:清空原有权限,重新设置为指定权限
4. chmod 修改文件 / 目录权限
chmod 是权限修改核心命令,支持字符模式和数字模式。
(1)字符模式示例
# 给所有用户添加读、写、执行权限
chmod ugo+rwx test.txt
# 等价写法,a 代表全部用户
chmod a+rwx test.txt
# 仅给所有者移除执行权限
chmod u-x test.txt
# 给所属组单独设置只读权限
chmod g=r test.txt
(2)数字模式示例(最常用)
按三组权限数值直接赋值,格式:chmod 三位数字 文件名
# 所有者、组、其他用户均为 rwx (7),即 777
chmod 777 test.txt
# 所有者rwx(7)、组r-x(5)、其他r--(4)
chmod 754 test.txt
四、修改文件拥有者与所属组
文件默认归属创建者,可通过 chown、chgrp 重新指定所有者和用户组,仅 root 用户或原所有者可执行操作。
1. chown 修改文件拥有者
- 基础用法:仅修改所有者
- 拓展用法:
用户:组格式,同时修改所有者和所属组 -R:递归参数,作用于目录内所有子文件、子目录
# 仅修改文件所有者为 user1
chown user1 test.txt
# 同时修改所有者和所属组
chown user1:group1 test.txt
# 递归修改整个目录及内部所有文件
chown -R user1:group1 test_dir/
2. chgrp 修改文件所属组
专门用于单独修改文件 / 目录的所属用户组,同样支持 -R 递归操作。
# 修改文件所属组为 group1
chgrp group1 test.txt
# 递归修改目录内所有内容的所属组
chgrp -R group1 test_dir/
五、目录的专属权限规则
注意:以下规则仅对普通用户生效,root 超级用户不受权限限制。
- r 可读权限可以查看目录内的文件、目录名称(能执行
ls查看列表)。 - w 可写权限可以在目录内新建、删除、重命名文件 / 子目录;该权限必须搭配 x 权限才能生效。
- x 可执行权限可以进入该目录(执行
cd切换路径),也能修改目录内文件内容、执行目录中的程序。
六、umask 默认权限掩码
新建文件 / 目录时,系统会自动赋予默认权限,这个默认值由 umask(权限掩码)控制。
1. 基础概念
umask作用:规定需要被扣除的权限- 执行
umask可直接查看当前掩码值 - 执行
umask 数值可临时修改掩码值
umask # 查看当前umask值
umask 022 # 设置umask为022
2. 普通文件 默认权限计算
Linux 规定:普通文件默认最大权限为 666(默认无执行权限)计算公式:最终权限 = 666 - umask 值
示例:umask=022最终权限 = 666 - 022 = 644 → 对应权限 -rw-r--r--
3. 目录 默认权限计算
Linux 规定:目录默认最大权限为 777(目录需要执行权限才能进入)计算公式:最终权限 = 777 - umask 值
示例:umask=022最终权限 = 777 - 022 = 755 → 对应权限 drwxr-xr-x
本篇小结
ls -l输出分为 7 大字段,首位字符区分 7 种不同文件类型;- 9 位权限分为三组,对应所有者 (u)、所属组 (g)、其他用户 (o),r/w/x 分别对应 4/2/1 数值;
chmod负责改权限,支持字符、数字两种用法;chown/chgrp负责修改文件归属;- 目录权限有特殊规则,w 权限必须配合 x 权限才能正常使用;
umask决定新建文件 / 目录的默认权限,文件以 666、目录以 777 为基数做减法计算。
下期预告
下一篇我们学习文件查找、压缩与打包命令,掌握 find、tar、gzip 等高频工具,快速检索文件、批量打包备份数据。
更多推荐


所有评论(0)