0


Linux学习笔记(2)

Linux权限管理🎈

文章目录

1. 权限定义🎈

例:没开VIP你就看不了VIP才能看的电影,没有宿舍的门禁卡就进不了宿舍楼,图书馆不是管理员就只能借阅图书,而不能添加图书等…这些都是权限,官方一点:对某事项进行决策的范围和程度.

2. 文件权限 🎈

文件权限=权限+对其操作的角色

权限:比如r(读) w(写) x(执行) 权限

操作的角色:比如owner(拥有者) group(所属组) other(其他人)

执行权限可能有点迷:运行C程序生成一个a.out ./a.out这个过程就是在执行,若是没有这个权限则无法运行

3. 认识文件权限🎈

下面是ll打印的三个文件的信息

在这里插入图片描述

解释:前面的owner、group、other代表该类的权限,为三个字符为一组

后面的owner、group代表文件具体的owner和group,比如上图具体化到个体的owner和group为 ck和ck

为什么owner和group相等? 因为一个人的默认分组就是一组,组员也就只有他…

rw-rw-r– :代表owner拥有读写权限,不具有执行权限(前三个),group拥有读写权限,不具有执行权限(中三个),other拥有读权限,不具有写和执行权限(后三个)

‘-’就代表不具备该权限,rwx就代表具有所有的权限

理解group

group的意义:在保证项目安全的前提下,方便组内协同

4. 更改文件属性🎈

“chmod“命令

  1. 加减等号改变权限

u+x表示给用户,也即owner加上”x(可执行)权限”

u代表用户

g+r表示给group加上 “r(读)权限”

group代表组

o-r表示给other去掉 “r(读)权限”

o表示other

小结:chmod 可以根据 ‘+’,‘-’ 和 ‘=’ 来更改权限

例:(假定文件名为file.txt)
(file.txt)操作前的权限操作操作后的权限rw- rw-r–chmod u+x file.txtrwxrw-r–rwxrwxrwxchmod u-x,g-x,o-r file.txtrw-rw–wxrw- rw-rw-chmod u=x file.txt–xrw-rw-rw-rw-rw-chmod g+x,o-rw file.txtrw-rwx—
2. 二进制改变权限

'-'代表不具备该权限,代表0,反之代表具有该权限,代表1

三位代表一类权限比如 — 等同于 八进制的000 等同于十进制的0

九位代表文件权限,也就是九个二进制数,三个八进制

例:
000(八进制)000000000(二进制)---------(权限)001000000001--------x123001010011–x-w–wx666110110110rw-rw-rw-

可以自己试试

使用:

chmod 000 file.txt

chmod 666 file.txt

chmod 123 file.txt

官方文档:

在这里插入图片描述

5. 权限不够的情况及解决🎈

  1. 权限不够会报错

在这里插入图片描述

报错:cat: file.txt: Permission denied

一般权限不够会报一些not permitted denied之类的错

  1. 解决办法:提升到root权限,用sudo命令即可.

不懂sudo命令的可以看看上一篇的基本指令👉:基本指令概况 Linux学习笔记(1)_m0_53005929的博客-CSDN博客)

注:root,也就是超级用户,基本上可以使用所有的权限,完成操作时权限不足一般都直接提升为root

6.改变当前文件的拥有者和所属组🎈

  1. chown

输入命令:chown root file1.txt

在这里插入图片描述

报错,表示权限不够,解决自然是sudo提升权限到root

在这里插入图片描述

更改成功

  1. chgrp

同理更改所属组,比如改成root

在这里插入图片描述

简便写法

在这里插入图片描述

7. 查看文件🎈

file命令:展示文件更加详细的信息

如:file file1.txt

8.Linux默认权限🎈

还记得上面讲过的二进制和八进制表示文件权限吗

下面讲普通文件和目录的默认权限

  1. 普通文件默认从666开始> 在这里插入图片描述> > 默认的值转化过来应该是110 110 100也就是664,与666并不相同> > 再接着往下看
  2. 目录文件默认从777开始> 在这里插入图片描述> 默认的值转化过来应该是111 111 101也就是775,与777并不相同

针对上述两种情况的原因,是因为存在umask (umask的默认值为0002,我们看后三位002)

以普通文件为例:创建文件时,002先按位取反得到一个结果,这个结果会与666进行按位与(&)运算,所以默认显示的权限并不是666

运算过程:

在这里插入图片描述

同理:777与(~002)的结果为:775

运算过程:在这里插入图片描述

既然我们知道umask有默认值,那我们能不能更改它呢,答案是可以的!

在这里插入图片描述

小结:更改umask的默认值后,创建文件时的默认权限自然也会跟着改变,变化后的默认权限也可通过计算得到。

9. 题目🎈

  1. 在目录下创建文件,需要什么权限?

必须具有w权限

  1. 要读取目录下的文件列表,要什么权限?

必须具有r权限

  1. 要进入一个目录要什么权限?

必须具有x权限

推导:rwx三个权限一个一个删,看删掉哪一个后不能进行相应操作

10.粘滞位🎈

假若有很多普通用户,他们在同一个目录下有着许多文件,权限各不相同,他们只能访问自己对应的权限,假若普通用户觉得:既然我看不了,那大家都别看了,之后进行了删除文件的操作,那他能实现吗?

换种说法,普通用户可以删掉超级用户(root)权限的文件吗

答案是可以的

此时为了防止误删等情况,就出现了粘滞位,粘滞位可起到保护的作用

用法:

在这里插入图片描述
这个t就是粘滞位,取代了x,可以理解为一种特殊权限。 t加上去之后,用户就只能删除自己权限范围内的。可以自己举例尝试一下,基本思路:先不用粘滞位,把拥有者权限和所属组权限提升至root,此时普通用户访问该目录就是other,尝试删除,应该删除成功,再次创建目录,加上粘滞位后再进行删除,删除失败!
在这里插入图片描述

小知识: /tmp目录下放了很多临时文件,大多都加了粘滞位,也即t

注:粘滞位是加在目录上的,保护目录里面的文件,测试发现加在文件上出现T,还是能删

11. 权限总结🎈

操作的前提都是权限,只要权限合格才能进行操作

我们知道要在目录里读取文件必须要r权限,此时如果我们去掉x权限,能否读取成功

答:不能,x权限决定能不能进目录,也就是目录都进不去还读什么

同理缺少x权限就不能在目录下创建文件(需要w权限)

所以缺少x权限下我们不能进行任何操作

标签: linux 服务器 运维

本文转载自: https://blog.csdn.net/m0_53005929/article/details/122356016
版权归原作者 你算哪一个bug? 所有, 如有侵权,请联系我们删除。

“Linux学习笔记(2)”的评论:

还没有评论