目录

LinuxLinux操作系统用户权限解析

【Linux】Linux操作系统用户权限解析

引言

Linux作为一款多用户、多任务的操作系统,其权限管理机制是系统安全的核心基石。无论是个人开发者还是企业运维人员,理解Linux用户权限的设计原理和操作方法都至关重要。本文将从用户与组的概念入手,逐步解析文件权限、管理命令及实际应用场景,帮助读者构建清洗的权限管理知识体系。

1、用户与组:权限的归属基础

Linux中所有操作都是基于用户身份执行,权限的分配也围绕用户和组展开。

https://i-blog.csdnimg.cn/img_convert/e403215e8fba341cfef967b0c480c081.png

  1. 用户(User)
    • 每个用户拥有唯一的 用户名UID(User ID) ,系统通过UID识别用户。
    • 用户信息存储在 /etc/passwd 文件中,格式为: username:x:UID:GID:description:homedir:shell
    • 超级管理员** root **的UID为 0 ,拥有最高权限。
  2. 组(Group)
    • 组用于批量管理用户权限,每个用户至少属于一个 主组 ,可以加入多个 附加组
    • 组信息存储在 /etc/group 文件中,格式为: groupname:x:GID:members
# 查看当前用户信息
id
# 创建新用户并指定UID
useradd -u 1001 alice
# 将用户加入附加组
usermod -aG developers alice

2、文件权限详解:rwx与数字表示

Linux中每个文件和目录的权限由三部分组成: 所有者(Owner)所属组(Group) 其他人(Others)

https://i-blog.csdnimg.cn/img_convert/1e4c1b7e7af6181092567df8c6b24264.png

每个文件或目录都具有一串字母,它们就是权限符号。

  1. 权限符号表示

    • r (读) :查看文件内容或列出目录内容。
    • w (写) :修改文件或目录结构(如创建/删除文件)。
    • x (执行) :运行程序文件或进入目录。
    • - :证明该用户没有此项权限。
  2. 数组表示法

    • 将权限转换为二进制, 1 表示具有权限, 0 表示没有权限,则 rwx 可表示为 111
    • 以此类推, r=4 , w=2 , x=1

3、权限管理命令

  1. 修改文件权限: chmod
# 符号模式
chmod u+x main.c # 给所有者添加执行权限
chmod g-w main.c # 给所属组去掉写权限
chmod o+rw main.c # 给其他人添加读写权限

# 数字模式
chmod 755 main.c # main.c权限设置为 rwxr-xr-x

# 递归修改目录权限
chmod -R 664 /code/test
  1. 修改所有者与所属组: chownchgrp
chown username:usergroup main.c # 同时修改所有者和所属组
chgrp usergroup /test # 仅修改组
  1. 默认控制权限: umask

    • Linux 操作系统中,目录的最大权限是 777 ,普通文件的最大权限是 666

    • 但当我们创建目录或文件时发现:

      • 目录权限是** 775 **。

      https://i-blog.csdnimg.cn/img_convert/c1b646d1c9625d24a20f9525f58c8c61.png

      • 文件权限是** 664 **。

      https://i-blog.csdnimg.cn/img_convert/b5d221583af15be5480889f46563b5f7.png

    • umask 值决定新建文件或目录的默认权限(默认权限=最大权限&(~umask))。

    • umask=002 ,则文件权限:

      • https://i-blog.csdnimg.cn/img_convert/aae3dcc494bda9e45aeb42decfb70e22.png
    • 同理,可算出目录的默认权限是 775

4、权限验证流程

当用户尝试访问问价时,Linux按一下顺序检查权限:

  1. 是否为所有者?

    → \rightarrow

    → 应用所有者权限。

  2. 是否属于所属组的成员?

    → \rightarrow

    → 应用组权限。

  3. 除此之外

    → \rightarrow

    → 应用其他人权限。

[!CAUTION]

权限一旦匹配即终止,不会叠加多个角色的权限。

5、粘滞位

在团队协作中,一定需要多人在同一目录中写入文件数据,这就需要一个较为安全的目录,而普通目录会出现所有者写的文件被其他人删除的现象。

https://i-blog.csdnimg.cn/img_convert/3aff0e9ac6e72f32602ae014b4e6f6f8.png

  • 为了解决这个问题,需要给目录设置粘滞位。
chmod +t /code_test # 设置粘滞位

当一个目录被设置了粘滞位,则该目录的文件只能由:

  1. **超级管理员 root **删除。
  2. 该目录所有者 删除。
  3. 该文件所有者 删除。

总结

Linux权限管理通过用户、组和文件权限的三层机制,实现了灵活且安全的资源访问控制。掌握 chmodchown 等命令的使用,理解权限验证流程,并结合实际场景合理配置权限,是保障系统安全的关键技能。无论是开发环境还是生产服务器,良好的权限习惯都能有效降低风险,避免“一失权成千古恨”的悲剧。