3.2 文件权限管理

3.2 Linux文件权限管理

一、Linux 权限模型概述

Linux 采用多用户权限管理机制,通过权限控制实现系统资源隔离与安全管理。

文件和目录的权限主要分为三类对象:

  • 所有者(User)
  • 所属组(Group)
  • 其他用户(Other)

每类对象拥有不同的访问权限。


二、查看文件权限

使用 ls -l 查看文件权限:

1
ls -l

示例输出:

1
2
-rw-r--r-- 1 root root  123 May 27 10:00 file.txt
drwxr-xr-x 2 root root 4096 May 27 09:00 mydir

权限字段解析

权限字段共 10 个字符:

1
-rw-r--r--

结构如下:

1
2
3
4
5
6
- rw- r-- r--
│ │ │ │
│ │ │ └── Other(其他用户)
│ │ └────── Group(所属组)
│ └────────── User(所有者)
└──────────── 文件类型

文件类型

标识 类型
- 普通文件
d 目录
l 软链接
c 字符设备
b 块设备

权限含义

权限 含义
r Read(读取)
w Write(写入)
x Execute(执行)

示例解析

普通文件

1
-rw-r--r--

含义:

1
2
3
所有者:读、写
所属组:读
其他用户:读

目录

1
drwxr-x---

含义:

1
2
3
所有者:读、写、执行
所属组:读、执行
其他用户:无权限

目录权限中的 x 表示允许进入目录:

1
cd directory

如果目录没有执行权限,即使拥有读取权限,也无法访问目录中的文件。


三、chmod 权限管理

chmod 用于修改文件或目录权限。


3.1 符号模式

用户对象

符号 含义
u User(所有者)
g Group(所属组)
o Other(其他用户)
a All(所有用户)

操作符

符号 含义
+ 添加权限
- 删除权限
= 覆盖原权限

权限符号

符号 含义
r
w
x 执行

示例

为所有者增加执行权限:

1
chmod u+x file.sh

移除组写权限:

1
chmod g-w file.txt

设置其他用户只读:

1
chmod o=r file.txt

设置精确权限:

1
chmod u=rwx,g=rx,o= file.txt

为所有用户增加执行权限:

1
chmod a+x script.sh

3.2 数字模式

Linux 权限采用二进制位计算:

权限 数值
r 4
w 2
x 1

权限值为三者之和。


权限对应关系

权限 数字
0
–x 1
-w- 2
-wx 3
r– 4
r-x 5
rw- 6
rwx 7

常见示例

755

1
chmod 755 file.sh

对应:

1
rwxr-xr-x

含义:

1
2
3
所有者:读写执行
所属组:读执行
其他用户:读执行

644

1
chmod 644 file.txt

对应:

1
rw-r--r--

含义:

1
2
3
所有者:读写
组:只读
其他用户:只读

600

1
chmod 600 secret.key

对应:

1
rw-------

仅所有者可访问。


700

1
chmod 700 private_dir

对应:

1
rwx------

仅所有者拥有全部权限。


常见权限组合

权限值 权限表示 适用场景
644 rw-r–r– 普通文件
755 rwxr-xr-x 目录、脚本
600 rw——- 私钥、敏感文件
700 rwx—— 私有目录
777 rwxrwxrwx 完全开放(不推荐)

3.3 递归修改权限

递归修改目录:

1
chmod -R 755 mydir

目录与文件分别设置权限

目录:

1
find mydir -type d -exec chmod 755 {} \;

普通文件:

1
find mydir -type f -exec chmod 644 {} \;

这种方式更符合实际生产环境规范。


四、所有者与所属组管理


4.1 chown

用于修改文件所有者和所属组。


修改所有者

1
chown alice file.txt

修改所有者和所属组

1
chown alice:staff file.txt

仅修改所属组

1
chown :staff file.txt

递归修改

1
chown -R alice:staff mydir

4.2 chgrp

仅修改所属组。

修改文件组:

1
chgrp developers file.txt

递归修改:

1
chgrp -R developers mydir

五、特殊权限

Linux 提供三种特殊权限机制:

  • SUID
  • SGID
  • Sticky Bit

5.1 SUID

SUID(Set User ID)允许程序以文件所有者身份运行。

查看示例:

1
ls -l /usr/bin/passwd

可能看到:

1
-rwsr-xr-x

其中:

1
s

表示已设置 SUID。


设置 SUID

符号方式:

1
chmod u+s file

数字方式:

1
chmod 4755 file

SUID 权限值

1
4xxx

例如:

1
chmod 4755 program

5.2 SGID

SGID(Set Group ID)允许程序以所属组身份运行。

目录上的 SGID 更常见。

设置:

1
chmod g+s mydir

目录 SGID 作用

当用户在目录中创建文件时:

1
新文件自动继承目录所属组

适用于团队共享目录。


SGID 权限值

1
2xxx

示例:

1
chmod 2755 shared

5.3 Sticky Bit

Sticky Bit 常用于公共目录。

典型目录:

1
/tmp

查看:

1
ls -ld /tmp

通常显示:

1
drwxrwxrwt

末尾的:

1
t

即 Sticky Bit。


Sticky Bit 作用

目录中的文件只能由以下用户删除:

  • 文件所有者
  • 目录所有者
  • root

其他用户无法删除他人的文件。


设置 Sticky Bit

符号方式:

1
chmod +t shared

数字方式:

1
chmod 1777 shared

Sticky Bit 权限值

1
1xxx

示例:

1
chmod 1777 /data/share

六、权限验证命令

查看权限:

1
ls -l file.txt

查看目录权限:

1
ls -ld mydir

查看文件所有者:

1
stat file.txt

查看当前用户:

1
whoami

查看用户信息:

1
id

七、权限管理最佳实践

普通文件

推荐:

1
644
1
rw-r--r--

脚本文件

推荐:

1
755
1
rwxr-xr-x

私钥文件

推荐:

1
600
1
rw-------

例如:

1
~/.ssh/id_rsa

私有目录

推荐:

1
700
1
rwx------

避免使用 777

虽然:

1
chmod 777 file

能够快速解决权限问题。

但同时意味着:

1
2
3
任何用户都可读
任何用户都可写
任何用户都可执行

生产环境应尽量避免使用。


八、常用命令汇总

命令 作用
ls -l 查看文件权限
ls -ld 查看目录权限
chmod 修改权限
chmod -R 递归修改权限
chown 修改所有者
chgrp 修改所属组
find -exec chmod 批量修改权限
stat 查看详细属性
whoami 查看当前用户
id 查看用户信息

3.2 文件权限管理
https://blog.sh462li.top/2026/05/27/3.2 文件权限管理/
作者
SHAO
发布于
2026年5月27日
许可协议