Linux权限详解:从入门到掌握

Linux权限详解:从入门到掌握

在Linux系统中,权限管理是一个核心概念。如果你是初学者,可能会觉得它有些抽象,但只要理解了设计思想,你会发现它既严谨又优雅。本文将带你深入理解Linux权限体系,让你轻松管理文件和目录的访问控制。

一、Linux中的两类用户

Linux系统将用户分为两种:

用户类型 提示符 权限范围
超级用户(root) # 可以在系统中做任何事情,不受限制
普通用户 $ 只能做有限的操作,无法影响系统核心

切换用户命令:su

bash

复制代码
# 从普通用户切换到root(需要输入root密码)
su root

# 从root切换到普通用户
su username

💡 小贴士:日常操作建议使用普通用户,只有在需要系统级配置时才切换到root,这样更安全。


二、文件访问者的三类身份

Linux将访问文件的用户划分为三个角色:

角色 代号 说明
所有者(User) u 创建文件的用户,拥有最高控制权
所属组(Group) g 与所有者同组的用户,用于团队协作
其他人(Others) o 既不是所有者也不在所属组中的用户

这种设计非常巧妙:既保证了文件主人的控制权,又允许灵活的团队共享。


三、文件类型与基本权限

3.1 文件类型(第一个字符)

执行 ls -l 时,第一个字符表示文件类型:

字符 含义 示例
- 普通文件 文本、可执行程序
d 目录 文件夹
l 软链接 类似Windows快捷方式
b 块设备 硬盘、光驱
c 字符设备 屏幕、串口
p 管道文件 进程间通信
s 套接字文件 网络通信

3.2 三种基本权限(后面9个字符)

权限 对文件的意义 对目录的意义 数值
读(r) 可读取文件内容 可浏览目录中的文件列表 4
写(w) 可修改文件内容 可在目录中创建/删除文件 2
执行(x) 可执行该文件(如脚本) 可cd进入该目录 1

⚠️ 重点 :目录的x权限决定能否cd进入,即使你有r权限,没有x也无法进入目录!


四、权限的两种表示方法

4.1 字符表示法

rwxr-xr-- 这样的格式,每三个一组:所有者/所属组/其他人。

4.2 八进制数值表示法

权限组合 数值
--- 0
--x 1
-w- 2
-wx 3
r-- 4
r-x 5
rw- 6
rwx 7

例如:rwxr-xr-- = 7(所有者) + 5(所属组) + 4(其他人) = 754


五、修改权限的命令

5.1 chmod --- 修改权限

字符方式:

bash

复制代码
# 给所有者增加执行权限
chmod u+x file.txt

# 取消所属组的写权限
chmod g-w file.txt

# 设置其他人的权限为只读
chmod o=r file.txt

# 给所有角色添加读权限
chmod a+r file.txt

数值方式(推荐):

bash

复制代码
# 设置权限为 rw-r--r--
chmod 644 file.txt

# 设置权限为 rwxr-x---
chmod 750 script.sh

# 递归修改目录下所有文件
chmod -R 755 myfolder/

5.2 chown --- 修改所有者

bash

复制代码
# 修改文件所有者
chown alice file.txt

# 同时修改所有者和所属组
chown alice:developers file.txt

# 递归修改目录
chown -R alice myfolder/

5.3 chgrp --- 修改所属组

bash

复制代码
# 修改文件所属组
chgrp developers file.txt

# 递归修改
chgrp -R developers myfolder/

六、umask --- 默认权限掩码

当你创建一个文件或目录时,系统会赋予一个默认权限:

  • 普通文件默认:666(rw-rw-rw-)
  • 目录默认:777(rwxrwxrwx)

但实际创建出来的权限会受umask影响。最终权限 = 默认权限 & (~umask)

bash

复制代码
# 查看当前umask
umask
# 输出:0022  (普通用户通常是0002)

# 设置新的umask
umask 027

计算示例(umask=0022):

  • 新建文件:666 & (~022) = 666 & 755 = 644(rw-r--r--)
  • 新建目录:777 & (~022) = 777 & 755 = 755(rwxr-xr-x)

💡 root用户的默认umask通常是0022,普通用户是0002。


七、目录权限的特殊注意事项

目录权限的行为与文件略有不同,这里有一个常见误区:

权限组合 能否cd进入 能否ls列出内容 能否创建/删除文件
r-- (4) ❌ 不能 ❌ 不能 ❌ 不能
r-x (5) ✅ 能 ✅ 能 ❌ 不能
rwx (7) ✅ 能 ✅ 能 ✅ 能

关键结论

  • 进入目录需要x权限
  • 列出目录内容需要r权限
  • 创建/删除文件需要w权限

八、粘滞位(Sticky Bit)--- 解决"删别人文件"的问题

问题场景

如果某个目录对所有人开放了w权限(如/tmp),那么任何用户都可以删除目录中的任何文件,哪怕文件不属于自己。这显然不合理!

解决方案

粘滞位(Sticky Bit)正是为了解决这个问题。设置粘滞位后,目录中的文件只能由以下角色删除

  1. 超级管理员(root)
  2. 目录的所有者
  3. 文件的所有者

设置方法

bash

复制代码
# 给目录添加粘滞位
chmod +t /shared

# 查看效果(权限末尾出现t)
ls -ld /shared
# 输出:drwxrwxrwt. 2 root root 4096 ...

📌 /tmp 目录就是一个经典的粘滞位例子,任何用户都可以在里面创建临时文件,但只能删除自己的。


九、总结速查表

命令 作用 示例
chmod 755 file 设置权限 所有者全权,组和其他人读+执行
chmod u+x file 给所有者加执行 常用在脚本上
chown user:group file 修改所有者和组 转移文件归属
chgrp group file 修改所属组 让团队共享
umask 027 设置默认掩码 新文件默认640
chmod +t dir 设置粘滞位 保护共享目录

最后的话

Linux权限体系的设计思想可以概括为:最小权限原则 --- 每个用户和进程只拥有完成工作所必需的最小权限。理解并善用这套机制,是保障系统安全的基础。

希望这篇文章能帮你建立起对Linux权限的清晰认识。如果有任何疑问,欢迎在评论区留言讨论!






相关推荐
以太浮标2 小时前
华为eNSP模拟器综合实验之- 华为USG6000V防火墙配置防御DoS攻击实战案例解析
运维·网络协议·网络安全·华为·信息与通信
努力打怪升级2 小时前
Apache HTTP Server 2.4 Windows 版完整配置与运维手册
运维·http·apache
zzzyyy5382 小时前
进程优先级
linux·运维·服务器
腾科IT教育2 小时前
华为云计算运维工程师怎么考?2026年报考攻略
运维·华为云·华为认证·hcip考试·华为hcip考试
无风听海2 小时前
.NET10之C# 中的is null深入理解
服务器·c#·.net
小鸡食米2 小时前
Linux-例行性工作+时间服务器
linux·服务器·网络
Bert.Cai2 小时前
Linux head命令详解
linux·运维
Huy-C2 小时前
云计算案例排错(云上4)
linux·运维·云计算
路溪非溪2 小时前
Linux中Netlink简介和使用总结
linux·网络·arm开发·驱动开发