# 云计算基础Day06:Linux权限管理

在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权限判断的核心逻辑:

  1. 定身份:判断用户对目标资源的身份(所有者/所属组/其他人,按优先级匹配);
  2. 查权限:根据匹配的身份,查找对应的权限位,确定具体的rwx权限;
  3. 判操作:结合权限类型,判断用户可执行的具体命令(如无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为基本权限掩码,仅关注后三位即可)。

核心规则
  1. 最大基础权限 :系统为文件和目录设定不同最大值,防止文件默认拥有执行权限导致安全风险
    • 目录最大权限:777(rwxrwxrwx)
    • 文件最大权限:666(rw-rw-rw-,默认无x执行权限)
  2. 默认权限计算
    • 目录默认权限: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权限的核心特点

  1. 精细化控制 :可针对单个用户单个用户组独立设置权限,不受三组归属的限制;
  2. 文件系统支持:EXT3/EXT4、XFS等Linux主流文件系统默认支持ACL,无需额外配置;
  3. 与基础权限兼容:ACL权限是基础权限的补充,不会覆盖原有基础权限,二者共同生效;
  4. 可递归配置:支持对目录进行递归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,实现以下精细化权限配置:

  1. james:读写(rw)权限;
  2. booker:只读(r)权限;
  3. janner:与booker相同(r)权限;
  4. john:读写执行(rwx)权限;
  5. 其他用户:无任何权限。

核心配置命令

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精细化管理,覆盖了云计算基础运维中权限管理的所有核心知识点,核心总结如下:

  1. 基础核心 :掌握rwx三类基础权限、ugo三类归属分组,能通过ls -l/ld解析权限信息,遵循身份优先、匹配即停止的权限判断逻辑;
  2. 核心命令 :熟练使用chmod(修改权限,符号法/数字法/递归-R)、chown(修改归属,单独/同时/递归-R),这是权限管理的基础操作;
  3. 默认权限:理解文件/目录的最大基础权限(666/777)和umask权限掩码的作用,掌握默认权限的计算和定制方法;
  4. 特殊权限:重点掌握Sticky Bit粘滞位的作用和配置(1777),理解SUID/SGID的适用场景,掌握4位数字的特殊权限设置方法;
  5. 精细化管理 :掌握ACL权限的setfacl/getfacl命令,实现对单个用户/组的精细化权限配置,突破三组归属的限制;
  6. 安全原则 :Linux权限管理的核心是最小权限原则,即只为用户分配完成工作所需的最小权限,避免过度授权导致系统安全风险。

Linux权限管理是云计算基础运维的核心技能,后续在云服务器、容器、Linux集群等云环境中,所有资源的权限配置均基于本次内容,掌握好基础原理和实操命令,才能应对更复杂的云环境权限管理需求。

相关推荐
_OP_CHEN2 小时前
【Linux网络编程】(二)计算机网络概念进阶:彻底搞懂协议本质、传输流程与封装分用
linux·运维·服务器·网络·网络协议·计算机网络·c/c++
勇闯逆流河2 小时前
【Linux】linux进程概念(fork,进程状态,僵尸进程,孤儿进程)
linux·运维·服务器·开发语言·c++
牛十二2 小时前
宝塔安装openclaw+企业微信操作手册
linux·运维·服务器
开开心心_Every2 小时前
免费抽奖软件支持内定名单+防重复中奖
linux·运维·服务器·edge·pdf·c5全栈·c4python
feng68_2 小时前
Discuz! X5 高性能+高可用
linux·运维·服务器·前端·后端·高性能·高可用
gaize12132 小时前
阿里云轻量适配宝塔|可视化管理更方便
阿里云·云计算
IMPYLH2 小时前
Linux 的 chgrp 命令
linux·运维·服务器
optimistic_chen2 小时前
【Vue入门】scoped与组件通信
linux·前端·javascript·vue.js·前端框架·组件通信
qingwufeiyang_5302 小时前
统一网关GateWay
linux·服务器·gateway