[ linux-系统 ] 权限管理
Linux 严格意义上讲是一个操作系统的核心(Kernel),但一般用户不能直接使用 Kernel,而是通过 Kernel 的“外壳”程序,即 Shell,与 Kernel 进行通信。
Shell 的定义:
命令行解释器 (Command Interpreter):将用户的命令翻译给内核 (Kernel) 处理,同时将内核的处理结果翻译给用户
Linux 权限的概念
在 Linux 系统中,权限是用于控制用户对文件和目录的访问级别。它是保障系统安全和数据完整性的重要机制。
Linux 下有两种用户:超级用户 (root) 和普通用户。
超级用户 (root):可以在 Linux 系统下做任何事情,不受限制。
普通用户:只能做有限的事情。
命令提示符
超级用户的命令提示符是 #
普通用户的命令提示符是 $
切换用户的命令:
使用 su [用户名] 命令。
从 root 用户切换到普通用户 user:su user
从普通用户 user 切换到 root 用户:su (默认 root)
linux权限管理
权限=人+事物属性
1.访问者的分类
分类 | 符号 | 解释 |
---|---|---|
文件和目录的所有者 | u | User |
文件和目录的所有者所在组的用户 | g | Group |
其它用户 | o | Others |
2.文件类型和访问权限
(1).文件类型
符号 | 解释 |
---|---|
d | 文件夹 |
- | 普通文件 |
l | 软链接 (类似 Windows 快捷方式) |
b | 块设备文件 (如硬盘、光驱等) |
p | 管道文件 |
c | 字符设备文件 (如屏幕等串口设备) |
s | 套接口文件 |
(2).文件基本权限
- 文件基本权限是指文件或目录的基本访问权限,通常由 9 个字符组成,分为 3 组,每组 3 个字符,分别表示文件的所有者、用户组和其他用户的权限。
符号 | 权限 | 解释 |
---|---|---|
r | 读 | Read,对文件而言,读取文件内容权限;对目录而言,浏览该目录信息权限 |
w | 写 | Write,对文件而言,修改文件内容权限;对目录而言,删除和移动目录内文件的权限 |
x | 执行 | Execute,对文件而言,执行文件权限;对目录而言,进入目录的权限 |
- | 无 | 拥有该项权限 |
(3) 权限值表示方法
访问权限的设置
(1) chmod
- 功能: 设置文件的访问权限。
- 格式:
chmod [参数] 权限 文件名
- 常用选项:
-R
递归修改目录文件的权限
用户表示符与权限字符:
符号 | 解释 |
---|---|
+ | 增加权限 |
- | 取消权限 |
= | 赋予权限 |
用户符号:
符号 | 解释 |
---|---|
u | 拥有者 |
g | 拥有者同组用户 |
o | 其它用户 |
a | 所有用户 |
给所有用户赋权的三种复合使用方法
chmod a=x # 设置文件所有用户有执行权限
chmod 755 # 使用三位8进制表示法
chmod u+x,g+x,o+wx
(2) chowm
修改文件拥有者命令:chown
- 功能: 修改文件的拥有者。
- 格式:
chown [参数] 用户名 文件名
(3) chgrp
- 功能: 修改文件或目录的所属组。
- 格式:
chgrp [参数] 用户组名 文件名
- 常用选项:
-R
递归修改文件或目录的所属组
(4) umask
- 功能: 设置或查看新建文件的默认权限掩码
- 格式:
umask [参数] [权限掩码]
为什么创建目录的默认权限是 775,而创建普通文件的默认权限是 664 ?
不同系统可能有差异吗?
创建的时候为什么不可以都是 777?
这些都是因为权限掩码的存在。
umask
命令用于设置新建文件的默认权限掩码,它决定了新文件创建时的默认权限
- 新建文件默认权限:
- 新建文件夹默认权限:0666
- 新建目录默认权限:0777
- 默认掩码 0002
掩码的计算:按位取反&
目录权限
r:查看目录下的内容
w:是否允许在当前路径下创建,更改,删除
x:是否允许用户进入当前目录
下面举个例子,如果有一个共享目录,A用户在里面写了一个文件,并设置除所有者外的用户只能读不能写不能执行,其目的是不想让其他用户修改甚至删除自己写的文件,可是如此一来,B用户具有这个目录的写权限,那么他是不是就可以删除这个目录中的文件,而不用管是否具有这个文件的写权限了吗,这合理吗,显然不合理,为此Linux引入了粘滞位的概念。
粘滞位
以 root 身份给 all 目录添置粘滞位,这样用户就不能随意删除了
当一个目录设置为"粘滞位" (用 chmod + t
),则该目录下的文件删除权限如下:
- 超级管理员可以删除
- 目录所有者可以删除
- 文件所有者可以删除