【Linux权限|权限的引入、Linux中的用户、文件权限、目录权限、默认权限掩码umask、粘滞位】

1.什么是权限

通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源。决定有无,或者能还是不能的问题。像学校的门禁,是该学习的师生才有权利进去,没有便进不去。

2.权限的本质

权限和人有关,和事物的属性有关。
权限 = 人 + 事物的属性。**“人”**并不是说叫什么,而是看这种”人“处于何种角色,就像不能在视频软件上刷题,刷题软件上看视频一样。事物指的是文件。

3.Linux中的用户

Linux 系统中有两种用户,一是root用户:超级管理员,不受权限的约束 ;二是其他(普通用户)

用户间的身份切换
>普通用户变超级管理员root
(1)执行su指令,输入root账号密码就可以。ctrl +d退回普通用户。变化前后所处路径不会发生变化,相当于只发生了身份的变化;
在这里插入图片描述
(2)执行su - ,输入root账号密码。相当于root重新登录,此时所处路径是root账号的家目录 /root。ctrl + d退回普通用户后,所处路径又变回普通用户的家目录
在这里插入图片描述
> 超级管理员root变普通用户
su 用户名:直接变,不用输入用户密码
在这里插入图片描述

要是不想变成root,但只想以root的身份执行一个工作该怎么办呢?
sudo + 指令
用sudo对指令进行提权,为什么输入的是自己的密码?给受信任的用户,提供最少的执行障碍。默认云服务器是不能使用sudo提权, 应该进行配置才可以。系统中有类似于白名单和黑名单的功能,白名单中的是系统绝对相信的。Linux系统中有类似的简单的白名单策略。

4.Linux中文件的权限管理

4.1 文件访问者的分类(人)

有三种“人”(即角色):(1)拥有者:u — User、所属组:g — Group、其他用户other
Linux具有组的概念,主要是在多人协作的时候,更好的进行权限管理。

4.2文件类型的访问权限(事物属性)

在这里插入图片描述

1.文件类型。 -:表示普通文件; d:表示目录文件
2.基本权限。 读权限(r),写权限(w),可执行权限(x)

因为文件的权限等于角色 + 事物属性,所以谈论一个文件的权限必定是说拥有者具有什么权限,所属组具有什么权限,other具有什么权限。这九位三三为一组,依次是拥有者,所属组,other所对应的权限。
又因为Linux分为root用户和普通用户,所以user,group,other将来在系统里会有具体的用户来承担。
在这里插入图片描述

4.3 文件权限值的表示方法

字符表示法
在这里插入图片描述
8进制数值表示法
在这里插入图片描述

4.4修改权限

权限 = 角色 + 文件权限属性

4.4.1修改文件权限属性

对于普通用户,自身要受到对应的权限约束,即使文件是它自己的,而root账号并不受限制。
所以权限存在的意义便是保证普通用户的文件的一般安全性

一个文件的权限谁能修改呢?
(1)文件的拥有者
(2)root用户

chmod
功能:设置文件的访问权限
格式chmod [u/g/o/a] ±rwx 文件名
chmod 3位8进制数 文件名

例如,给文件 test.txt 的拥有者增加可执行权限
在这里插入图片描述
也可同时对多个人的一个或多个权限进行修改,在组合时用逗号进行分离。可以分开添加,也可直接用a+要改变的权限(a就是all,指所有人)
在这里插入图片描述
在这里插入图片描述

4.4.2修改用户角色

chown
功能:修改文件的拥有者
格式chown [参数] 用户名 文件名
在这里插入图片描述
chgrp
功能:修改文件或目录的所属组
格式chgrp [参数] 用户组名 文件名
在这里插入图片描述
如果普通用户要把文件给root或别的普通用户,就会执行错误,应该在指令前加su /sudo 进行指令提权,把自己变成root。也可以同时修改拥有者和所属组,将用户名用冒号连接即可。
在这里插入图片描述

取消拥有者对文件的读权限、写权限、可执行权限,便不可再对文件进行读写等操作了。可是我们看到文件的拥有者和所属组是同一人,而且所属组具有r、w权限的呀,为什么还是不能完成读写操作呢?那是因为Linux在进行权限匹配的时候,对用户身份识别的时候只识别一次。

在这里插入图片描述

如何理解可行性权限x?

可执行权限 vs可执行
能执行 = 具有可执行权限 +本身就是一个可执行文件
在这里插入图片描述
在这里插入图片描述
比较可得,图1中a.out是一个可执行程序且有可执行权限,那么a.out就可以执行;
图二中取消了可执行权限,虽然a.out是一个可执行文件,但是该文件不能被执行。

4.5文件类型

windows是通过文件后缀名来区分文件类型
Linux不通过后缀区分文件类型!(不是说Linux不用后缀)但是Linux上的工具可能区分。如gcc

Linux通过什么来区分呢?ls -l的第一个属性列

Linux文件类型
-:普通文件,文本文件,可执行程序,库等都叫做普通文件
d:目录文件
b:块设备文件,磁盘
在这里插入图片描述
c:字符设备文件。显示器本质就是字符设备。
只有一个终端时:
在这里插入图片描述
有多个时:
在这里插入图片描述
再对0、1设备进行echo输出重定向
在这里插入图片描述
前三条 echo “hello” >> /dev/pts/1 将在1终端显示 “hello”
在这里插入图片描述
p:管道文件
在这里插入图片描述
l:链接文件
在这里插入图片描述

5.目录权限

之前我们学习了普通文件权限,那么目录是文件吗?
在这里插入图片描述
可以看出,目录和普通文件一样,都有属性、权限、文件大小、创建时间以、文件名、拥有者所属组、类型等。
既然这样,我们要进入目录需要什么权限呢?r?w?还是x呢?我们先来验证一下。

此时目录dir拥有者拥有读、写、可执行三个权限,通过控制取消某个权限来尝试是否能进入文件。
(1)首先取消读权限r
在这里插入图片描述
可以看出取消r权限对进入目录没有影响,那会对哪方面产生影响呢?在dir下创建一个文件,但是不能够查看该文件。所以目录的r权限决定用户能否查看指定目录内的文件信息。
在这里插入图片描述
(2)取消写权限w
在这里插入图片描述
在这里插入图片描述

通过取消写权限,我们发现对进入目录仍没有影响。所以,进入一个目录需要x权限。在这里插入图片描述

目录的r权限:决定用户能否查看指定目录内的文件信息。
目录的w权限:决定用户是否能在指定目录内新建、修改、删除文件。

为什么没有x权限就不能进入目录以及在目录内增加、修改、删除文件呢?
我们知道,文件 = 内容 + 属性 。内容是指该目录里所有文件信息详细数据,所以没有r权限,便不能读文件;没有w权限,便不能修改文件。

删除文件和目标文件有关吗

在这里插入图片描述
在这里插入图片描述
尽管文件mytext1的所有权限都被取消了,但是root用户还是能够进行读写,甚至是删除。
文件 root1、root2、root3的拥有者和所属组均为 root,它给other的权限只有r,普通用户能删掉拥有者是root的文件,这合理吗?我们可能会认为这样是不现实的。但是上面刚讲过目录的w权限决定用户是否能在指定目录内新建、修改、删除文件。文件root1所在目录的拥有者是普通用户,并且该普通用户具有w权限,所以能删除文件root1。
在这里插入图片描述

因此由目录决定目录里的文件是否能被删除,而删除一个文件和目标文件没有关系。文件只能决定自己能被哪些人读、写,而能不能被删除取决于文件在哪个目录下。

6.默认权限

创建的普通文件,起始权限是:0666,去掉x
创建的目录文件,起始权限是:0777,包含x
但实际上,我们创建普通文件或目录文件时,权限是0664或0775。

因为Linux默认存在权限掩码umask。超级用户root默认掩码值为0022,普通用户默认掩码值是0002。(平台不同,umask值可能不同。
umask值也可修改。 【umask 0XXX】

创建文件时,要从起始权限中,过滤掉(不是简单的减法)在umask中出现的权限。
如何过滤呢??
最终权限 = 起始权限 & (~umask)
在这里插入图片描述

7.粘滞位

如果想在Linux下有多个用户建立一个共享的文件,怎样被大家共同访问?
我们不能在各自的家目录下创建,因为每个人的家目录只对自己开放权限。我们只能在系统的非用户目录下创建,root用户创建一个共享目录,假设普通用户1和普通用户2之间有要共享一个文件,因为普通用户对该目录来说都是other,所以要将该目录的other权限均打开,但这样普通用户3、普通用户4…都可以查看该文件了,甚至是删除掉该文件。为了解决这一问题,Linux引入了粘滞位的概念。

粘滞位都是给目录设置的
格式chmod +t 目录名

当一个目录被设置为“粘滞位”,则该目录下的文件只能由
1.超级管理员删除
2.该目录的所有者删除
3.该文件的所有者删除

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天学习了吗•

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值