【Linux文件的权限分析和总结】

在这里插入图片描述

一、Linux权限管理

我们知道Linux下有两种用户:超级用户(root)和 普通用户。
它们有以下特性:
超级用户: 可以再linux系统下做任何事情,不受限制。
普通用户: 在linux下做有限的事情。
超级用户的命令提示符是 “#”,普通用户的命令提示符是 “$“。
在这里插入图片描述
普通用户切换成超级用户的指令: su - 或者 su (要输入root用户密码)
超级用户切换成普通用户的指令: su - [用户名] (不需要输入密码)
如果原来是由普通用户切换成超级用户,那么直接按【ctrl + d】 也能直接变为刚才的普通用户。
在这里插入图片描述

二、Linux文件权限

对于权限,我们可以这样理解: 权限 = 人 + 事物的属性
比如男厕所的属性就是可以被人上厕所,但是对于男厕所把人分为男人和女人,只允许男人进入。权限也就是一件事是否被特定的人去做。下面我们分人方面和事物属性方面去分析Linunx的文件权限。

1. 文件访问者的分类(人)

对于文件的访问者可以分为以下三类:
① 文件和文件目录的所有者(user)
② 文件和文件目录的所有者所在的组的用户(group)
③ 其它用户(other)

2.文件类型和访问权限(事物属性)

在这里插入图片描述

在这里插入图片描述
小细节: 对于目录来说,
没有x权限就进不去目录里面,并且如果执行ll指令,只会让我们看到文件名,不会让我们看到详细信息。
在这里插入图片描述

三、文件的权限修改

1. 修改文件的访问权限(chmod)

chmod指令:
功能: 设置文件的访问权限
格式: chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
注意: 只有文件的拥有者和root才可以改变文件的权限
修改方法:
chmod 用户表示符+/-=权限字符
用户符号:
u:所有者
g:拥有者同组用
o:其它用户
a:所有用户
权限字符:
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
图片展示如下:
在这里插入图片描述
chmod (八进制码)
我们知道权限的位置是确定的并且是两态的,所有就可以用二进制来表示,如下图:
在这里插入图片描述
所以我们就可以来搭配chmod指令来修改文件权限,如下图所示:
在这里插入图片描述

2. 修改文件的拥有者者(chown)

chown 指令:
功能: 修改文件的拥有者
格式: chown [选项] 用户名 文件名
常用选项:
R -> 递归修改目录的拥有者
注意: 修改文件的拥有者要有root权限才行
指令展示如下:
在这里插入图片描述

3. 修改文件的用户组(chgrp)

chgrp指令:
功能: 修改文件或目录的所属组
格式: chgrp [参数] 用户组名 文件名
常用选项: -R 递归修改文件或目录的所属组
(小细节:)当你的身份是拥有者,如果想修改的用户组和文件的拥有者一样,那么就可以直接修改。
指令展示如下:
在这里插入图片描述
修改拥有者和所属组也可以用chown来搞定:
chown :root file30.txt (修改所属组为root)
chown root:root file30.txt (修改拥有者和所属组为root)

扫描二维码关注公众号,回复: 14856442 查看本文章

4. umask指令

我们先来想一个问题,为什么系统中的文件创建的默认权限是我们所看到的样子呢?
我们来认识一下umask就知道了,
umask指令:
功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。
分析如下:
在这里插入图片描述

四、粘滞位

我们知道对于目录的权限有以下特点:
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

于是, 问题来了;
如果目录本身对other具有w权限,other可以删除掉任何目录下的文件;
换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有目录里面文件的写权限。
这就可能导致一个问题,那就是A用户创建的文件但是B用户却可以删除。

但是我们想创建一个要求:other可以在特定的目录下创建文件并且可以写入,但是other不可以删除其它用户的文件。
为了解决这个问题, Linux引入了粘滞位的概念
只有目录内文件的所有者或者root才可以删除或移动该文件,实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。
当一个目录被设置为"粘滞位"(用chmod o+t),则该目录下的文件只能由
① 超级管理员删除
② 该目录的所有者删除
③ 该文件的所有者删除

猜你喜欢

转载自blog.csdn.net/m0_56311933/article/details/123006978
今日推荐