Linux权限管理
1. 权限基础概念
权限本质
权限与用户身份和文件属性相关,类似门禁系统控制访问权限Linux用户分类
root
:超级管理员,不受权限约束- 普通用户:受权限系统限制
2. 用户切换与权限授予
命令 | 功能说明 | 备注 |
---|---|---|
su 用户名 |
切换用户(root→普通用户) | 需exit 返回原用户 |
sudo |
临时授予普通用户root权限 | 首次需密码,5-10分钟内免密 |
3. 权限修改命令
命令 | 功能 | 示例 |
---|---|---|
chown |
修改文件所有者 | chown user file |
chgrp |
修改文件所属组 | chgrp group file |
chmod |
修改文件权限 | chmod 755 file |
4. 文件权限系统
4.1 权限组和类型
- 拥有者权限 (user)
- 所属组权限 (group)
- 其他用户权限 (others)
4.1.1 权限类型
符号 | 数值 | 权限说明 |
---|---|---|
r | 4 | 读取权限 |
w | 2 | 写入权限 |
x | 1 | 执行权限 |
4.2 权限表示法
除第一个文件类型标识符外,后九位三个为一组,
图例:
- rw- r-- r-x # 权限标识示例
文件类型标识 拥有者权限 所属组权限 其他用户权限
4.3 修改方法
4.3.1 权限操作符
操作符 | 功能描述 | 示例 |
---|---|---|
+ |
向权限范围添加指定权限 | u+x (给所有者添加执行权限) |
- |
从权限范围移除指定权限 | g-w (从组移除写权限) |
= |
精确设置权限范围的权限 | o=r (设置其他用户为只读) |
4.3.2 用户范围符号
符号 | 代表用户范围 | 说明 |
---|---|---|
u |
User(所有者) | 文件/目录的拥有者 |
g |
Group(所属组) | 与所有者同组的用户 |
o |
Other(其他) | 既不是所有者也不在组的用户 |
a |
All(所有) | 全部用户(等价于ugo) |
4.3.3 组合使用示例
chmod u+rwx,g-w,o=rx file.txt # 所有者添加rwx,组移除w,其他用户设为r-x
chmod a+x file1.c # 给所有用户添加执行权限
4.3.4 权限修改方法
符号表示法:
chmod [用户类型][操作符][权限] 文件名
数字法:
rmx相当于八进制,共有三组(拥有者、所属组、其他用户),所以一般是由三个数字表示一个完整的文件权限。
rmx
:111—— 7rm-
:110—— 6r-x
:101—— 5r--
:100—— 4-mx
:011—— 3-w-
:010—— 2--x
:001—— 1---
:000—— 0
chmod 755 file # rwxr-xr-x
5. 文件类型系统
5.1 文件类型标识
标识 | 类型 | 说明 |
---|---|---|
- |
普通文件 | 文本/二进制文件 |
d |
目录 | 文件夹 |
l |
软链接 | 快捷方式 |
b |
块设备 | 存储设备 |
c |
字符设备 | 终端设备 |
p |
管道 | 进程通信 |
图例:
drwxr-xr-x. 2 root root 6 Aug 9 05:09 dir #目录
-rw-r--r-x. 1 root root 113 Aug 8 05:28 test.txt #普通文件
6. 目录权限特性
6.1 关键权限
- r:查看目录内容
- w:修改目录内容(创建/删除/重命名文件)
- x:进入目录(访问目录内文件)
6.2 删除权限
- 由所在目录的
w
权限决定 - 与文件本身权限无关
7. 默认权限机制
7.1 初始权限
- 文件:
666
(rw-rw-rw-) - 目录:
777
(rwxrwxrwx)
7.2 umask计算
计算方法:
最终权限 = 初始权限 & (~umask)
例如 umask 值:0002 → 文件664,目录775
注意: 每个机器的umask值不同,但是计算方法相同。
8. 共享目录方案
注意事项:
- 文件无法在用户家目录下创建,因为家目录仅限所属用户访问
- 只能在系统公共目录中创建文件(通常会在 /tmp 目录下)
- 需要设置粘滞位(防止其他用户误删他人文件)
8.1 创建共享空间
mkdir /shared
chmod 1777 /shared # 1代表粘滞位
8.2 粘滞位
当目录设置粘滞位(t权限)时,该目录下的文件删除权限将受到特殊限制:
chmod +t /shared_dir # 设置粘滞位
典型权限示例:
drwxrwxrwt # 末尾't'表示粘滞位
可删除文件的用户类别:
仅以下用户拥有删除权限:
- 文件所有者(文件属主)
- 文件创建者(通常与所有者相同)
- 目录所有者(文件所在目录的属主)
- root 用户(超级管理员)
重要说明:
粘滞位仅对可写目录生效
实际删除权限取决于目录的w权限 + 粘滞位限制