详细介绍:Linux----权限

1. shell命令以及运行原理

Linux是一个操作系统,我们把它叫做核心,但我们不可以直接使用核心,我们是经过核心的外壳程序,也就是shell来与内核沟通。

1.1 那为什么我们不直接使用内核呢?

从技术角度,Shell的最简单定义:命令行解释器

主要包含:
1. 将使用者的命令翻译给核心进行处理。
2. 同时,将核心的处理结果翻译给使用者。

双击C盘盘符就是对比windows GUI,我们操作windows不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的执行(比如进入C盘的运行,我们通常

shell对于Linux,有相同的作用,首要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,经过shell解析给用户,bash就是我们常用的外壳代码

2. Linux权限的概念

Linux下有两种用户:超级用户(root) 和 普通用户

超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
“$”就是超级用户的命令提示符是“#”,普通用户的命令提示符

2.1 su 用户名

能力:切换用户。
例如,要从root用户切换到普通用户 xaq,则使用su xaq,普通用户不需要切换代码
要从普通用户 xaq 切换到root 用户则采用su root(root允许省略),此时系统会提示输入root用户密码的口令。
在这里插入图片描述

3. Linux权限管理

3.1 记录访问者的分类(人)

缩写)就是1. 文件或文件目录的所有者:u----User (u
在所有者的所在的组的用户 (所属组):g—Group
其它用户:o—Others(其它人)

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

3.21 文件类型:

d:文件夹
-:普通材料

3. 22 访问权限:

读( r ):Read对档案而言,具有读取文件内容的权限
对目录来说,具有浏览该目录信息的权限

写(w):Write对文件而言,具有修改文件内容的权限
对目录来说具有删除移动目录内文件的权限

执行 (x):execute对文件而言,具有执行文件的权限
对目录来说,具有进入目录的权限

— 表示不具有该项权限
在这里插入图片描述
这个test对于就是这里的d和 - 是文件类型,而d和 - 之后的就是就是访问权限,就
所有者,所属组,和其它人分别是

所有者:它是可读可写可执行
所属组:它是可读可写可执行
其他人:它是可读不能写可执行
这里的访问权限是出去首字母的文件类型,然后3个放一起看,而且必须是r w x的顺序,不能 r x w什么之类的,就像其他人他没有写权限 - 就代表他不具有该项权限

这里的2 后面的第一个xaq就是目录所有者,而所属组也是xaq,这是我名字缩写,你们也能够设置自己的,这就是文件访问者,但还存在真实的人,真实的人就是root(超级用户)或普通用户

比如这里的test目录的所有者和所属组都是普通用户(xaq),而xaq相当于是个角色,它扮演成了这个目录的所有者和所属组,使它们都变成xaq

3.3 总结

权限:权限就是角色+事物属性,正常是文件访问者+事物属性,但是文件访问者只能是超级用户或普通用户,而我们把超级用户或普通用户统称为角色,所以权限就是角色+事物属性(文件类型和访问权限统称为事物属性)

4. chmod

功能:设置文件的访问权限
+ : 就是增加访问权限
- : 就是减少访问权限
= : 就是赋值访问权限
a :所有用户,全称是all

在这里插入图片描述
在这里插入图片描述
此时就给test.c加了可写权限,就是能够修改文件内容了。

1. 只有记录的拥有者和root 才可以改变文件的权限
在这里插入图片描述
张三不可以改文件的权限
在这里插入图片描述
我是张三我不可以去改xaq这个目录的权限,只能回到xaq或root改,root无视权限
在这里插入图片描述
前面说的x权限是文件可执行,但是在Linux下能执行包括两个条件,一是具有x权限,二是文件真的可以执行
在这里插入图片描述
依然不可以执行因为它没有进行gcc编译,故而一个文件要执行就必须进行gcc编译和有x权限就是这里的test.c具有x权限但
在这里插入图片描述
这里文件的所有者和所属组都是xaq,但是user,group,other和我当前用户进行身份对比时,只依次对比一次,我当前用户是xaq,跟我的user先对比,对比成功就不会继续对比了,如果不成功再与group对比

5. chown

效果:更改文件或目录的拥有者
在这里插入图片描述
这里我想把test.c文件的拥有者改成zs,只能是root用户,要是普通用户的话要求sudo提权

6. chgrp

作用:更改文件或目录的所属组
在这里插入图片描述
在这里插入图片描述
这里我想把test.c文件的所属组改成zs,只能是root用户,要是普通用户的话需要sudo提权
在这里插入图片描述
在这里插入图片描述
通过这样也可以改权限,但是这能够一下改变多个,只是之前的
在这里插入图片描述
在这里插入图片描述
这里第二个指令g+x就不会被执行
总结:八进制改变权限可以一次性改变 u,g,o的所有权限,而+就只能改变一个。

7. file

功能:识别资料的类型。
在这里插入图片描述

8. umask

功能:
查看或修改文件掩码
超级用户默认掩码值为0022
普通用户默认为0002
新建文件夹默认权限=666
新建目录录默认权限=777

: mask&(~umask)就是但实际上创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限

所以最终权限 (缺省权限)
新建文件夹默认权限=664
新建目录录默认权限=775
通过也就是我们只要修改材料或目录的掩码就能够改变文件或目录最终权限也叫缺省权限

9. 目录的权限

可执行权限: 如果目录没有可执行权限,则无法cd到目录中.
可读权限: 要是目录没有可读权限,则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限,则无法在目录中创建材料,也无法在目录中删除资料.

换句话来讲,就是只要用户具有目录的写权限,用户就可以删除目录中的文件,而不论该用户是否有这个档案的写权限

这好像不太科学,xaq创建的⼀个文件,凭什么被你zs可以删掉?
在这里插入图片描述
没有w的权限的,只有r就是最初在该目录下test.c记录,对于其他人来说
在这里插入图片描述
用户就是我们回到上级目录,里面有xaq这个目录,也
在这里插入图片描述

我们给xaq这个目录的other加上rwx权限
不加x,zs进不去xaq这个目录
不加r,zs看不了xaq目录里的文件信息
在这里插入图片描述

在这里插入图片描述

9.1 重要

结论:切换到zs这个用户,然后进入xaq这个目录,可以看到里面的资料并没有w权限,但是我们可以删除它,也就是删除该目录下的文件与你本身文件的权限无关,与你文件所在目录的权限有关

其实前面也知道文件的w权限是能否修改文件的内容,与能否删除该记录无关,但是上面的结论把记录换成目录也是一样的,也就是说切换到zs这个用户,之后进入xaq这个目录,可以看到里面的目录并没有w权限,但是我们可以删除它,也就是删除该目录下的目录与你本身目录的权限也无关,与你目录所在目录的权限有关
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10 那有没有办法不让zs删除xaq的文件呢?

因此引出粘滞位的概念

1. 粘滞位只能给目录设置,不能给普通文件设置

2. 任何用户在当前目录下设置粘滞位后,只允许当前目录的拥有者删除当前目录下的文件或目录,所属组和other,都无法删除

3. root可以无视粘滞位,因为他是超级用户,允许理解成他开挂了
在这里插入图片描述
在这里插入图片描述
倘若这个目录没有x权限就会变成T,粘滞位是给other的,如果有x权限,粘滞位就是t
在这里插入图片描述
在这里插入图片描述
此时就删除不了了。

posted @ 2025-11-14 14:05  gccbuaa  阅读(4)  评论(0)    收藏  举报