在Linux系统中,权限管理是保障系统安全、实现资源合理分配的核心环节,也是云计算基础运维的必备核心技能。本文将结合实操案例,从基本权限与归属 、权限设置实操 、归属关系控制 、附加特殊权限 、ACL精细化权限管理五个维度,全面讲解Linux权限管理的原理、命令操作和实际应用场景,做到理论与实操结合,帮助快速掌握从基础到进阶的权限配置方法。
一、基本权限与归属
Linux作为多用户、多任务的操作系统,每个文件和目录都具备明确的访问权限 和归属关系,二者共同决定了用户对资源的操作能力,这是Linux权限管理的底层基础。
1.1 核心概念:访问权限与归属关系
(1)三类基础访问权限
Linux为所有资源定义了三种基础操作权限,是权限控制的基本单元,适用于所有用户和资源类型:
- 读取(read,简写r):允许查看文件内容、列出目录下的文件列表
- 写入(write,简写w):允许修改文件内容、在目录中创建/删除/重命名文件
- 可执行(execute,简写x) :允许运行可执行程序、切换进入目录(重点:目录的x权限是操作内部资源的基础,无x则无法对目录内资源进行任何操作)
(2)三类归属关系分组
Linux将系统所有用户划分为三个分组,每个文件/目录都会归属到特定的用户和组,权限会针对这三个分组分别配置,身份匹配优先级为:所有者 > 所属组 > 其他人,且匹配即停止:
- 所有者(user,简写u):拥有此文件/目录的单个用户,通常是资源的创建者
- 所属组(group,简写g):拥有此文件/目录的用户组,组内所有用户共享该组的权限
- 其他人(other,简写o):除所有者、所属组之外的所有系统用户,是权限控制的最小范围
1.2 查看文件/目录的基本权限与归属
使用ls -l(查看文件详情)或ls -ld(查看目录本身详情,不递归子目录)命令,可直接获取资源的完整权限、归属及其他属性信息,是权限管理的基础查询命令。
实操示例1:查看文件权限
bash
[root@localhost ~]$ ls -l /etc/passwd #查看/etc/passwd文件的基本权限
-rw-r--r--. 1 root root 2800 3月 7 09:34 /etc/passwd
信息解读:
- 第一个字符
-:表示该资源是普通文件 - 权限位
rw-r--r--:所有者(root)rw-、所属组(root)r--、其他人r-- - 硬链接数:1;所有者:root;所属组:root
- 文件大小:2800字节;最后修改时间:3月7日 09:34;资源名:/etc/passwd
实操示例2:查看目录权限
bash
[root@localhost ~]# ls -ld /etc #查看/etc目录的基本权限
drwxr-xr-x. 141 root root 8192 3月 11 12:07 /etc
信息解读:
- 第一个字符
d:表示该资源是目录 - 权限位
rwxr-xr-x:所有者(root)rwx、所属组(root)r-x、其他人r-x - 硬链接数:141;所有者:root;所属组:root
- 目录大小:8192字节;最后修改时间:3月11日 12:07;资源名:/etc
补充 :第一个字符的其他常见类型:l表示软链接文件(类似Windows快捷方式)。
1.3 如何判断用户对资源的实际权限
判断一个用户对某资源的可操作能力,需遵循先定身份,再查权限,最后判操作的三步原则,这是Linux权限判断的核心逻辑:
- 定身份:判断用户对目标资源的身份(所有者/所属组/其他人,按优先级匹配);
- 查权限:根据匹配的身份,查找对应的权限位,确定具体的rwx权限;
- 判操作:结合权限类型,判断用户可执行的具体命令(如无r则无法cat文件,无x则无法cd目录)。
完整实操案例:判断mike用户对/etc/passwd的权限
bash
# 1. 创建测试用户mike
[root@localhost ~]# useradd mike
# 2. 查看/etc/passwd详情和mike的用户组信息
[root@localhost ~]# ls -ld /etc/passwd
-rw-r--r--. 1 root root 2800 3月 7 09:34 /etc/passwd
[root@localhost ~]# id mike
uid=1003(mike) gid=1004(mike) 组=1004(mike)
# 3. 权限判断
# ① mike既非所有者root,也非所属组root,身份为「其他人」
# ② 继承其他人的权限位:r--(仅只读权限)
# ③ 仅可执行查看类命令,无法修改/删除
权限验证实操
bash
# 切换为mike用户
[root@localhost ~]# su - mike
# 可执行查看操作
[mike@localhost ~]$ head -1 /etc/passwd
[mike@localhost ~]$ tail -1 /etc/passwd
# 无法执行修改操作,提示权限不够
[mike@localhost ~]$ echo 123 >> /etc/passwd
-bash: /etc/passwd: 权限不够
二、权限设置:chmod命令实操全解
chmod是Linux修改文件/目录基本权限的核心命令,支持符号法 和数字法 两种配置方式,常用核心选项-R表示递归修改(适用于目录,可同时修改目录及其下所有子文件/子目录的权限),仅root用户或资源所有者可执行。
2.1 符号法:直观修改,适合单权限调整
符号法通过ugo指定用户组、+-=指定权限操作、rwx指定权限类型,适合对单个/部分权限进行添加、移除或强制设置,可读性强,新手易上手。
基本格式
bash
chmod [选项] [ugo/a] [+-=] [rwx] <文件或目录名>
a:代表all,即所有用户(u+g+o),可省略(如chmod +x file等价于chmod a+x file)+:添加权限;-:移除权限;=:强制设置权限(覆盖原有权限)-R:递归修改,仅针对目录生效
完整实操案例
bash
# 1. 创建测试文件
[root@localhost ~]# touch /opt/today.txt
# 2. 查看文件默认权限(默认644:rw-r--r--)
[root@localhost ~]# ls -l /opt/today.txt
-rw-r--r--. 1 root root 0 3月 11 15:24 /opt/today.txt
# 3. 为所有者增加x执行权限
[root@localhost ~]# chmod u+x /opt/today.txt
# 4. 为所属组、其他人同时增加x执行权限
[root@localhost ~]# chmod go+x /opt/today.txt
# 5. 查看权限变化(rwxr-xr-x)
[root@localhost ~]# ls -ld /opt/today.txt
# 6. 强制移除其他人的所有权限
[root@localhost ~]# chmod o=--- /opt/today.txt
# 7. 所属组加w权限,其他人加r权限
[root@localhost ~]# chmod g+w,o+r /opt/today.txt
# 8. 移除所属组的w权限
[root@localhost ~]# chmod g-w /opt/today.txt
# 9. 最终权限(rwxr-xr--)
[root@localhost ~]# ls -ld /opt/today.txt
在使用:ugo=rwx的格式时需注意:
bash
chmod o=--- /opt/today.txt 【冗余写法】
chmod g=r-w /opt/today.txt 【错误写法】
正确语法:
bash
chmod o=- /opt/today.txt
chmod g=rw /opt/today.txt
2.2 递归修改权限:针对目录的批量操作
当需要修改目录及其下所有子资源的权限时,使用-R选项实现递归批量修改,是企业运维中批量权限配置的常用操作。
实操案例
bash
# 1. 创建多级测试目录和文件
[root@localhost ~]# mkdir -p /opt/test/aa/bb
[root@localhost ~]# touch /opt/test/aa/bb/a.txt
# 2. 查看目录本身权限
[root@localhost ~]# ls -ld /opt/test/
# 3. 递归查看目录下所有资源的权限
[root@localhost ~]# ls -lR /opt/test/
# 4. 递归移除其他人的所有权限
[root@localhost ~]# chmod -R o=--- /opt/test/
# 5. 再次验证权限(目录和子文件的其他人权限均为---)
[root@localhost ~]# ls -ld /opt/test/
[root@localhost ~]# ls -lR /opt/test/
2.3 数字法:简洁高效,企业运维主流方式
Linux将rwx权限映射为固定的8进制数字,通过分组求和 的方式表示权限,适合一次性批量设置完整权限,输入简洁,是企业运维工程师的首选方式。
核心映射规则
- 基础权限与数字对应:r→4、w→2、x→1、无权限→0
- 分组求和:每组(u/g/o)的权限值 = 该组r/w/x数字之和
- 最终权限:由u/g/o三组的求和结果组成3位数字,按u→g→o顺序排列
权限映射示例
| 分组 | 所有者(u) | 所属组(g) | 其他人(o) |
|---|---|---|---|
| 字符权限 | rwx | r-x | r-x |
| 数字拆分 | 4+2+1=7 | 4+0+1=5 | 4+0+1=5 |
| 最终数字 | 7 | 5 | 5 |
完整实操案例
bash
# 1. 创建测试文件
[root@localhost ~]# touch /opt/test2.txt
# 2. 查看默认权限(644:rw-r--r--)
[root@localhost ~]# ls -l /opt/test2.txt
# 3. 设置权限为755(rwxr-xr-x)
[root@localhost ~]# chmod 755 /opt/test2.txt
# 4. 查看权限变化
[root@localhost ~]# ls -l /opt/test2.txt
# 5. 重新设置权限为750(rwxr-x---)
[root@localhost ~]# chmod 750 /opt/test2.txt
# 6. 最终验证
[root@localhost ~]# ls -l /opt/test2.txt
2.4 权限的实际作用验证
Linux的rwx权限对文件 和目录的控制逻辑不同,这是权限管理的重点易错点,需通过实操明确二者的权限差异。
2.4.1 权限对文件的控制
文件的权限直接控制对文件内容的操作,核心逻辑:
- r:查看文件内容(cat/head/tail等)
- w:修改文件内容(echo/vi等)
- x:运行可执行程序(如脚本、二进制文件)
实操验证
bash
# root用户操作:创建文件并查看默认权限
[root@localhost ~]# echo 123 > /opt/test.txt
[root@localhost ~]# ls -l /opt/test.txt
-rw-r--r--. 1 root root 4 3月 11 15:19 /opt/test.txt
# mike用户(其他人)验证:仅能查看,无法修改
[mike@localhost ~]$ cat /opt/test.txt
[mike@localhost ~]$ echo 456 >> /opt/test.txt # 权限不够
-bash: /opt/test.txt: 权限不够
# root用户操作:为其他人添加rwx权限
[root@localhost ~]# chmod o=rwx /opt/test.txt
[root@localhost ~]# ls -ld /opt/test.txt
# mike用户验证:可正常写入
[mike@localhost ~]$ echo 456 >> /opt/test.txt
[mike@localhost ~]$ cat /opt/test.txt
123
456
2.4.2 权限对目录的控制
目录的权限控制对目录本身和内部资源的操作能力 ,核心逻辑(重点):
- r:列出目录内的文件列表(ls)
- w:在目录内创建/删除/重命名资源(touch/rm/mv等)
- x:切换进入目录(cd),无x则无法执行任何目录内操作,即使有r/w权限
实操验证
bash
# root用户操作:创建目录和文件,查看权限
[root@localhost ~]# mkdir /cloud
[root@localhost ~]# echo 123 > /cloud/cc.txt
[root@localhost ~]# ls -ld /cloud
drwxr-xr-x. 2 root root 20 3月 11 15:46 /cloud/
# mike用户(其他人,r-x权限)验证:可ls/cd,无法修改内部资源
[mike@localhost ~]$ ls /cloud/
[mike@localhost ~]$ cd /cloud/
[mike@localhost cloud]$ mv /cloud/cc.txt /cloud/dd.txt # 权限不够
[mike@localhost cloud]$ rm -rf /cloud/cc.txt # 权限不够
# root用户操作:为其他人添加w权限
[root@localhost ~]# chmod o+w /cloud/
[root@localhost ~]# ls -ld /cloud/
# mike用户验证:可重命名/删除内部资源
[mike@localhost ~]$ mv /cloud/cc.txt /cloud/dd.txt
[mike@localhost ~]$ rm -rf /cloud/dd.txt
[mike@localhost ~]$ ls /cloud/
# 关键注意点:修改目录名需要父目录的w权限
[mike@localhost ~]$ mv /cloud /bigdata # 权限不够
-bash: /opt/test.txt: 权限不够
[mike@localhost ~]$ ls -ld / # 根目录其他人无w权限
dr-xr-xr-x. 18 root root 237 3月 11 15:38 /
2.5 文件/目录的默认权限
Linux中新建文件/目录的默认权限并非固定,由最大基础权限 和umask权限掩码 共同决定,核心计算公式:
默认权限 = 最大基础权限 - umask值
umask表示新建资源时默认需要移除的权限 ,系统默认值为0022(前0为特殊权限掩码,后22为基本权限掩码,仅关注后三位即可)。
核心规则
- 最大基础权限 :系统为文件和目录设定不同最大值,防止文件默认拥有执行权限导致安全风险
- 目录最大权限:777(rwxrwxrwx)
- 文件最大权限:666(rw-rw-rw-,默认无x执行权限)
- 默认权限计算
- 目录默认权限:777 - 022 = 755(rwxr-xr-x)
- 文件默认权限:666 - 022 = 644(rw-r--r--)
实操查看默认权限
bash
# 1. 查看系统默认umask值(默认0022)
[root@localhost ~]# umask
0022
# 2. 以符号形式输出默认权限(文件忽略x)
[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx
# 3. 创建目录,验证默认权限755
[root@localhost ~]# mkdir /study
[root@localhost ~]# ls -ld /study
drwxr-xr-x. 2 root root 6 3月 11 16:06 /study
# 4. 创建文件,验证默认权限644
[root@localhost ~]# touch /file1.txt
[root@localhost ~]# ls -ls /file1.txt
0 -rw-r--r--. 1 root root 0 3月 11 16:06 /file1.txt
修改umask值:定制默认权限,提高安全性
可通过umask 数值临时修改umask值(重启系统后恢复),实现新建资源默认权限的定制,常用场景:移除其他人的所有默认权限,提升系统安全性。
实操案例
bash
# 1. 设置umask值为0027(移除其他人的所有权限)
[root@localhost ~]# umask 0027
# 2. 查看修改后的umask值
[root@localhost ~]# umask
0027
# 3. 创建目录和文件,验证默认权限
[root@localhost ~]# mkdir /opt/mydir1
[root@localhost ~]# touch /opt/f1.txt
[root@localhost ~]# ls -ld /opt/mydir1 # 目录:777-027=750
[root@localhost ~]# ls -l /opt/f1.txt # 文件:666-027=640
# 4. 恢复系统默认umask值0022
[root@localhost ~]# umask 0022
[root@localhost ~]# umask
2.6 创建目录时直接指定权限:mkdir -m
若需要创建目录时跳过默认权限规则,直接设置目标权限,可使用mkdir -m命令,适合个性化目录权限需求,无需创建后再用chmod修改。
实操案例
bash
# 1. 创建目录并直接设置权限为750(rwxr-x---)
[root@localhost ~]# mkdir -m 750 /opt/mydir2
# 2. 验证权限(直接生效,无需后续修改)
[root@localhost ~]# ls -ld /opt/mydir2/
drwxr-x---. 2 root root 6 3月 10 15:52 /opt/mydir2/
三、归属控制:chown命令实操全解
文件/目录的归属关系(所有者/所属组)决定了权限的匹配对象,chown是Linux修改资源归属关系的核心命令,仅root用户可执行 ,支持单独修改所有者、单独修改所属组、同时修改二者,核心选项-R实现递归修改(适用于目录)。
3.1 chown基本格式
bash
# 仅修改所有者
chown [选项] 所有者 [文件或目录]
# 仅修改所属组
chown [选项] :所属组 [文件或目录]
# 同时修改所有者和所属组(冒号可替换为点号,如user.group)
chown [选项] 所有者:所属组 [文件或目录]
# 核心选项:-R 递归修改,针对目录生效
3.2 归属关系修改实操案例
bash
# 1. 创建测试用户、组、目录和文件
[root@localhost ~]# useradd tim # 创建tim用户
[root@localhost ~]# groupadd game # 创建game组
[root@localhost ~]# mkdir -m 750 /opt/timdir # 创建目录,权限750
[root@localhost ~]# touch /opt/timdir/f1.txt # 创建目录内文件
# 2. 仅修改目录的所有者为tom
[root@localhost ~]# chown tom /opt/timdir
# 3. 仅修改目录的所属组为tom组
[root@localhost ~]# chown :tom /opt/timdir
# 4. 递归修改目录及其下所有文件的所有者为tim、所属组为game
[root@localhost ~]# chown -R tim:game /opt/timdir
# 5. 验证归属关系变化(目录和文件均生效)
[root@localhost ~]# ls -ld /opt/timdir
[root@localhost ~]# ls -ld /opt/timdir/f1.txt
3.3 归属关系对权限的控制验证
归属关系是权限匹配的前提,修改归属关系可直接改变用户对资源的身份,进而改变实际操作权限,结合身份匹配优先级:所有者 > 所属组 > 其他人,通过实操验证该核心逻辑。
实操案例:通过修改归属关系实现tim用户的权限升级
bash
# 步骤1:创建测试目录,设置权限750,所属组为game
[root@localhost ~]# mkdir -m 750 /project
[root@localhost ~]# chown :game /project/
[root@localhost ~]# ls -ld /project/ # drwxr-x---. 2 root game 6 3月 11 16:46 /project/
# 步骤2:tim用户(其他人)验证:无任何权限
[root@localhost ~]# su - tim
[tim@localhost ~]$ cd /project/ # 权限不够
-bash: cd: /project/: 权限不够
[tim@localhost ~]$ ls /project/ # 权限不够
ls: 无法打开目录'/project/': 权限不够
# 步骤3:将tim加入game组,变为所属组成员,验证r-x权限
[root@localhost ~]# gpasswd -a tim game # 加入组
[root@localhost ~]# id tim # 验证组:uid=1003(tim) 组=1003(tim),1004(game)
[tim@localhost ~]$ ls /project/ # 可查看
[tim@localhost ~]$ cd /project/ # 可cd
[tim@localhost project]$ touch /project/file1.txt # 无法创建,所属组无w权限
touch: 无法创建 '/project/file1.txt': 权限不够
# 步骤4:修改目录所有者为tim,变为所有者,验证rwx权限
[root@localhost ~]# chown tim /project/
[root@localhost ~]# ls -ld /project/ # drwxr-x---. 2 tim game 6 3月 11 16:46 /project/
[tim@localhost ~]$ touch /project/file1.txt # 可创建
[tim@localhost ~]$ ls /project/ # 验证:file1.txt已创建
核心结论
tim用户同时为/project的所有者 和所属组成员 ,但因身份匹配优先级为所有者 > 所属组 ,最终继承所有者的rwx权限,实现写入操作,验证了Linux权限的匹配即停止原则。
四、附加特殊权限
基础权限(rwx)和归属关系能满足大部分常规权限需求,但在企业运维中,存在程序身份传递 、公共目录写权限限制 等特殊场景,此时需要借助附加特殊权限。特殊权限叠加于基础权限的u/g/o分组之上,是基础权限的补充,共包含三种核心类型。
4.1 特殊权限核心属性
特殊权限均有字符表示 和数字表示 ,且占用基础权限的x位,字符显示规则为:若该位置原本有x权限,特殊权限显示为小写 (s/t);若无x权限,显示为大写(S/T)。
| 特殊权限名称 | 字符表示 | 数字表示 | 占用位置 | 核心适用场景 | 核心作用 |
|---|---|---|---|---|---|
| Set UID(SUID) | s/S | 4 | 所有者的x位 | 可执行程序 | 执行程序时临时继承程序所有者权限 |
| Set GID(SGID) | s/S | 2 | 所属组的x位 | 目录 | 目录内新建资源自动继承目录所属组 |
| Sticky Bit(粘滞位) | t/T | 1 | 其他人的x位 | 公共可写目录 | 防止用户删除/重命名其他用户的资源 |
4.2 核心特殊权限:Sticky Bit粘滞位
粘滞位是企业运维中最常用的特殊权限 ,适用于公共可写目录(如系统默认的/tmp/),核心作用:即使用户对目录拥有w写入权限,也无法删除或重命名其他用户创建的文件/目录,仅能操作自己的资源,从根本上解决公共目录的资源篡改问题。
粘滞位设置与验证
bash
# 1. 创建公共目录,设置粘滞位+777权限(1为粘滞位数字,组合为1777)
[root@localhost ~]# mkdir /public
[root@localhost ~]# chmod 1777 /public
# 2. 创建测试用户
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# useradd lisi
# 3. zhangsan创建文件
[zhangsan@localhost ~]$ touch /public/z3.txt
# 4. lisi尝试删除文件,提示权限不够(核心验证)
[lisi@localhost ~]$ rm -rf /public/z3.txt
rm: 无法删除'/public/z3.txt': 不允许的操作
4.3 特殊权限的设置方法
特殊权限可结合数字法 与基础权限一起设置,格式为:特殊权限数字 + 基础权限3位数字,共4位数字,直接通过chmod命令配置。
示例
- 为可执行程序设置SUID+755权限:
chmod 4755 /opt/exec.sh - 为团队目录设置SGID+775权限:
chmod 2775 /team/work - 为公共目录设置粘滞位+777权限:
chmod 1777 /public
五、ACL权限管理:精细化权限配置
Linux基础权限的归属关系仅支持所有者、所属组、其他人 三组,无法实现对单个用户/单个组的精细化权限配置 (如为用户lisi单独开放某目录的r-x权限,其他其他人无权限)。ACL(Access Control List,访问控制列表)突破了这一限制,实现了资源权限的精细化、个性化管理,是企业高级运维的必备技能。
5.1 ACL权限的核心特点
- 精细化控制 :可针对单个用户 、单个用户组独立设置权限,不受三组归属的限制;
- 文件系统支持:EXT3/EXT4、XFS等Linux主流文件系统默认支持ACL,无需额外配置;
- 与基础权限兼容:ACL权限是基础权限的补充,不会覆盖原有基础权限,二者共同生效;
- 可递归配置:支持对目录进行递归ACL配置,批量应用于子资源。
5.2 ACL权限核心命令
ACL权限的管理主要通过setfacl(设置/删除ACL策略)和getfacl(查看ACL策略)两个命令实现,均支持-R递归选项。
5.2.1 setfacl:设置/删除ACL策略
核心作用:创建、修改、删除ACL权限策略,是ACL管理的核心命令。
基本格式与核心选项
bash
# 为单个用户设置ACL权限
setfacl [选项] u:用户名:权限 文档
# 为单个用户组设置ACL权限
setfacl [选项] g:组名:权限 文档
核心选项:
-m:创建/添加ACL策略(最常用,modify)-x:清除指定单条ACL策略(无需写具体权限,仅指定用户/组)-b:清除所有ACL策略,恢复资源的基础权限-R:递归设置ACL策略,针对目录生效
5.2.2 getfacl:查看ACL策略
核心作用 :查看资源的ACL策略详情,包含基础归属信息 和ACL权限列表,清晰展示所有精细化权限配置,是ACL验证的必备命令。
基本格式
bash
getfacl 文档 # 文档可为文件或目录
5.3 ACL权限完整实操案例
以为/root目录配置ACL权限,实现lisi/tom用户的精细化访问为例,完成ACL的添加、查看、删除全流程操作。
bash
# 步骤1:lisi用户(基础权限)访问/root,无任何权限
[lisi@localhost ~]$ ls /root/
ls: 无法打开目录'/root/': 权限不够
# 步骤2:root用户为lisi添加ACL策略(r-x权限),并查看
[root@localhost ~]# setfacl -m u:lisi:rx /root/
[root@localhost ~]# getfacl /root/ # 查看ACL策略,包含lisi的rx权限
# 步骤3:lisi用户验证:可正常访问/root
[lisi@localhost ~]$ ls /root/
[lisi@localhost ~]$ cd /root/
[lisi@localhost root]$ pwd
# 步骤4:root用户为tom添加ACL策略(r-x权限),并验证
[root@localhost ~]# setfacl -m u:tom:rx /root/
[root@localhost ~]# getfacl /root/ # 显示lisi和tom的ACL策略
# 步骤5:root用户删除tom的单条ACL策略,验证
[root@localhost ~]# setfacl -x u:tom /root/
[root@localhost ~]# getfacl /root/ # 仅保留lisi的ACL策略
# 步骤6:root用户清空/root的所有ACL策略,恢复基础权限
[root@localhost ~]# setfacl -b /root/
[root@localhost ~]# getfacl /root/ # 无任何ACL策略,恢复默认
5.4 ACL综合实操案例:多用户精细化权限配置
需求 :创建用户james、booker、janner、john,创建文件/opt/myfile1.txt,实现以下精细化权限配置:
- james:读写(rw)权限;
- booker:只读(r)权限;
- janner:与booker相同(r)权限;
- john:读写执行(rwx)权限;
- 其他用户:无任何权限。
核心配置命令:
bash
# 1. 创建所有测试用户
[root@localhost ~]# useradd james && useradd booker && useradd janner && useradd john
# 2. 创建测试文件
[root@localhost ~]# touch /opt/myfile1.txt
# 3. 设置基础权限600(rw-------),确保其他用户无任何权限
[root@localhost ~]# chmod 600 /opt/myfile1.txt
# 4. 为james添加rw权限
[root@localhost ~]# setfacl -m u:james:rw /opt/myfile1.txt
# 5. 为booker添加r权限
[root@localhost ~]# setfacl -m u:booker:r /opt/myfile1.txt
# 6. 为janner添加r权限
[root@localhost ~]# setfacl -m u:janner:r /opt/myfile1.txt
# 7. 为john添加rwx权限
[root@localhost ~]# setfacl -m u:john:rwx /opt/myfile1.txt
# 8. 查看ACL策略,验证所有配置
[root@localhost ~]# getfacl /opt/myfile1.txt
六、Linux权限管理核心知识点总结
本次内容围绕Linux权限管理展开,从基础的权限与归属,到实操性极强的chmod/chown命令,再到进阶的特殊权限和ACL精细化管理,覆盖了云计算基础运维中权限管理的所有核心知识点,核心总结如下:
- 基础核心 :掌握
rwx三类基础权限、ugo三类归属分组,能通过ls -l/ld解析权限信息,遵循身份优先、匹配即停止的权限判断逻辑; - 核心命令 :熟练使用
chmod(修改权限,符号法/数字法/递归-R)、chown(修改归属,单独/同时/递归-R),这是权限管理的基础操作; - 默认权限:理解文件/目录的最大基础权限(666/777)和umask权限掩码的作用,掌握默认权限的计算和定制方法;
- 特殊权限:重点掌握Sticky Bit粘滞位的作用和配置(1777),理解SUID/SGID的适用场景,掌握4位数字的特殊权限设置方法;
- 精细化管理 :掌握ACL权限的
setfacl/getfacl命令,实现对单个用户/组的精细化权限配置,突破三组归属的限制; - 安全原则 :Linux权限管理的核心是最小权限原则,即只为用户分配完成工作所需的最小权限,避免过度授权导致系统安全风险。
Linux权限管理是云计算基础运维的核心技能,后续在云服务器、容器、Linux集群等云环境中,所有资源的权限配置均基于本次内容,掌握好基础原理和实操命令,才能应对更复杂的云环境权限管理需求。