概述
在 Linux 系统中,所有文件和目录都具备明确的属性信息,包括文件类型、访问权限、所有者、所属组、大小、修改时间等。
通过 ls -la 命令可查看完整的文件属性,理解这些属性是 Linux 系统操作与权限管理的基础。本文基于实际命令输出,逐字段拆解文件属性含义,并补充实战应用技巧,帮助快速掌握文件属性的解读与使用。
文件属性查看方式
通过终端执行以下命令,可显示当前目录下所有文件(含隐藏文件)的完整属性:
ls -la
命令说明:
l:以长格式(long format)显示属性,包含权限、所有者、大小等详细信息;a:显示所有文件(all),包括以.开头的隐藏文件。
执行后输出示例(以 Laravel 项目目录为例):
total 296
drwxr-xr-x 12 root root 4096 Jul 21 11:11 .
drwxr-xr-x 11 root root 4096 Aug 6 01:44 ..
drwxr-xr-x 6 root root 4096 Jul 18 18:07 app
-rwxr-xr-x 1 root root 1686 Jul 18 18:07 artisan
drwxrwxrwx 3 root root 4096 Jul 18 18:07 bootstrap
-rw-r--r-- 1 root root 23508 Jul 18 18:07 CHANGELOG.md
-rw-r--r-- 1 root root 1597 Jul 21 08:50 composer.json
文件属性逐字段拆解
ls -la 输出的每一行对应一个文件/目录的属性,共分为 7 个核心字段(按顺序解读):
1. 第一字段:文件类型与权限(最关键字段)
该字段共 10 个字符,分为两部分:第 1 个字符表示文件类型,第 2-10 个字符表示访问权限。
第 1 个字符:文件类型
| 字符 | 类型说明 | 常见场景 |
|---|---|---|
d |
目录(directory) | 如 app bootstrap 目录 |
- |
普通文件(regular file) | 如 artisan composer.json 文件 |
l |
链接文件(link file) | 如 ln -s /usr/bin/php php7 创建的软链接 |
b |
块设备文件(block device) | 如硬盘、U盘等可随机读写的存储设备(/dev/sda1) |
c |
字符设备文件(character device) | 如键盘、鼠标等串行端口设备(/dev/tty1) |
第 2-10 个字符:访问权限(9 个字符,每 3 个为一组)
权限分为三类身份,每组对应一类身份的权限,顺序固定为「所有者 → 所属组 → 其他用户」:
- 第 2-4 位:文件所有者(user)的权限;
- 第 5-7 位:文件所属组(group)的权限;
- 第 8-10 位:其他用户(other)的权限。
权限字符含义:
| 字符 | 权限说明 | 作用(文件/目录) |
|---|---|---|
r |
可读(read) | 文件:可查看内容;目录:可列出目录内文件(ls) |
w |
可写(write) | 文件:可修改内容;目录:可创建/删除目录内文件(touch/rm) |
x |
可执行(execute) | 文件:可运行(如脚本、程序);目录:可进入目录(cd) |
- |
无对应权限 | 不具备该类权限 |
示例解读:以 drwxr-xr-x 为例
- 第 1 位
d:表示目录; - 第 2-4 位
rwx:所有者拥有读、写、执行权限; - 第 5-7 位
r-x:所属组拥有读、执行权限,无写权限; - 第 8-10 位
r-x:其他用户拥有读、执行权限,无写权限。
2. 第二字段:链接数(硬链接计数)
表示该文件/目录的硬链接数量:
- 普通文件:默认值为 1(自身);
- 目录:默认值为 2(目录本身 + 目录内的
.指向自身),子目录越多,链接数越多(每个子目录的..会指向父目录)。
示例中 drwxr-xr-x 12 root root 的「12」表示该目录有 12 个硬链接。
3. 第三字段:文件所有者(user)
表示文件/目录的创建者或所属用户,仅该用户可默认修改文件的核心权限(需配合 chown 命令修改)。
示例中 root 表示文件所有者为系统管理员用户。
4. 第四字段:文件所属组(group)
表示文件/目录归属的用户组,该组内所有用户会继承组对应的权限(需配合 chgrp 命令修改)。
示例中 root 表示文件所属组为 root 用户组。
5. 第五字段:文件大小(size)
- 普通文件:以字节(Byte)为单位,显示文件实际占用的存储空间;
- 目录:固定显示为 4096 Byte(Linux 中目录默认占用的最小磁盘空间,与文件系统块大小相关)。
示例中 23508 表示 CHANGELOG.md 文件大小为 23508 字节(约 23KB)。
6. 第六字段:最后修改时间(modify time)
表示文件内容或目录结构的最后修改时间,格式为「月 日 时:分」(若修改时间超过 6 个月,显示为「月 日 年」)。
示例中 Jul 21 08:50 表示 composer.json 最后修改于 7 月 21 日 8 点 50 分。
7. 第七字段:文件/目录名称
- 普通文件:直接显示文件名(如
artisan); - 隐藏文件:文件名以
.开头(如.env); - 链接文件:文件名后会显示
->及链接目标路径(如php7 -> /usr/bin/php)。
权限的数字表示法
除了字符表示法,Linux 权限还支持数字表示法(更便于命令行操作),核心规则:
- 每个权限对应固定数值:
r=4、w=2、x=1、-=0; - 每组权限的数值为 3 个字符对应数值之和(如
rwx=4+2+1=7、r-x=4+0+1=5、r--=4+0+0=4); - 完整权限由三组数值组成(所有者 + 所属组 + 其他用户),如
rwxr-xr-x对应755。
常见权限组合对照表:
| 字符表示 | 数字表示 | 适用场景 |
|---|---|---|
rwxrwxrwx |
777 |
所有用户可读写执行(不推荐,安全性极低) |
rwxr-xr-x |
755 |
程序、脚本、公共目录(默认推荐) |
rw-r--r-- |
644 |
普通文件、配置文件(默认推荐) |
rwx------ |
700 |
敏感目录/文件(仅所有者可操作) |
实战应用:权限与属性修改命令
掌握文件属性后,可通过以下命令修改属性(需 root 权限或文件所有者):
| 命令 | 功能 | 示例 |
|---|---|---|
chmod |
修改访问权限 | chmod 755 artisan(设置为所有者读写执行,其他读执行) |
chown |
修改文件所有者 | chown www:www composer.json(将所有者和组改为 www) |
chgrp |
修改文件所属组 | chgrp dev app(将 app 目录所属组改为 dev) |
touch |
修改文件时间戳(或创建空文件) | touch -d "2026-01-01" .env(修改 .env 的修改时间) |
lsattr/chattr |
查看/修改文件特殊属性(如不可删除) | chattr +i .env(设置 .env 不可修改/删除) |
注意事项
- 目录权限的特殊要求:若仅给目录设置
r权限(无x权限),虽可列出目录内文件,但无法进入目录(cd命令失效),建议目录权限至少为r-x(数字5); - 软链接权限:软链接的权限显示为
lrwxrwxrwx,但实际权限由目标文件决定,修改软链接权限无效; - 隐藏文件:以
.开头的文件为隐藏文件,需用ls -a才能查看,误删隐藏文件可能导致系统/程序异常(如.env配置文件); - 权限安全性:避免给普通文件设置
777权限(所有用户可修改),敏感文件(如数据库配置)建议设置为600(仅所有者可读写)。
总结
Linux 文件属性是系统安全与文件管理的核心,关键记住三点:
- 第一字段的 10 个字符是核心(文件类型 + 三组权限);
- 权限的字符/数字表示法需熟练转换(如
644对应rw-r--r--); - 目录必须具备
x权限才能进入,文件的x权限仅对脚本/程序有效。
通过 ls -la 查看属性 + chmod/chown 修改属性,可满足日常所有文件管理需求。


