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“命令
- 加减等号改变权限
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. 权限不够的情况及解决🎈
- 权限不够会报错
报错:cat: file.txt: Permission denied
一般权限不够会报一些not permitted denied之类的错
- 解决办法:提升到root权限,用sudo命令即可.
不懂sudo命令的可以看看上一篇的基本指令👉:基本指令概况 Linux学习笔记(1)_m0_53005929的博客-CSDN博客)
注:root,也就是超级用户,基本上可以使用所有的权限,完成操作时权限不足一般都直接提升为root
6.改变当前文件的拥有者和所属组🎈
- chown
输入命令:chown root file1.txt
报错,表示权限不够,解决自然是sudo提升权限到root
更改成功
- chgrp
同理更改所属组,比如改成root
简便写法
7. 查看文件🎈
file命令:展示文件更加详细的信息
如:file file1.txt
8.Linux默认权限🎈
还记得上面讲过的二进制和八进制表示文件权限吗
下面讲普通文件和目录的默认权限
- 普通文件默认从666开始> > > 默认的值转化过来应该是110 110 100也就是664,与666并不相同> > 再接着往下看
- 目录文件默认从777开始> > 默认的值转化过来应该是111 111 101也就是775,与777并不相同
针对上述两种情况的原因,是因为存在umask (umask的默认值为0002,我们看后三位002)
以普通文件为例:创建文件时,002先按位取反得到一个结果,这个结果会与666进行按位与(&)运算,所以默认显示的权限并不是666
运算过程:
同理:777与(~002)的结果为:775
运算过程:
既然我们知道umask有默认值,那我们能不能更改它呢,答案是可以的!
小结:更改umask的默认值后,创建文件时的默认权限自然也会跟着改变,变化后的默认权限也可通过计算得到。
9. 题目🎈
- 在目录下创建文件,需要什么权限?
必须具有w权限
- 要读取目录下的文件列表,要什么权限?
必须具有r权限
- 要进入一个目录要什么权限?
必须具有x权限
推导:rwx三个权限一个一个删,看删掉哪一个后不能进行相应操作
10.粘滞位🎈
假若有很多普通用户,他们在同一个目录下有着许多文件,权限各不相同,他们只能访问自己对应的权限,假若普通用户觉得:既然我看不了,那大家都别看了,之后进行了删除文件的操作,那他能实现吗?
换种说法,普通用户可以删掉超级用户(root)权限的文件吗
答案是可以的
此时为了防止误删等情况,就出现了粘滞位,粘滞位可起到保护的作用
用法:
这个t就是粘滞位,取代了x,可以理解为一种特殊权限。 t加上去之后,用户就只能删除自己权限范围内的。可以自己举例尝试一下,基本思路:先不用粘滞位,把拥有者权限和所属组权限提升至root,此时普通用户访问该目录就是other,尝试删除,应该删除成功,再次创建目录,加上粘滞位后再进行删除,删除失败!
小知识: /tmp目录下放了很多临时文件,大多都加了粘滞位,也即t
注:粘滞位是加在目录上的,保护目录里面的文件,测试发现加在文件上出现T,还是能删
11. 权限总结🎈
操作的前提都是权限,只要权限合格才能进行操作
我们知道要在目录里读取文件必须要r权限,此时如果我们去掉x权限,能否读取成功
答:不能,x权限决定能不能进目录,也就是目录都进不去还读什么
同理缺少x权限就不能在目录下创建文件(需要w权限)
所以缺少x权限下我们不能进行任何操作
版权归原作者 你算哪一个bug? 所有, 如有侵权,请联系我们删除。