Linux学习笔记(2)

Linux权限管理

文章目录

    • Linux权限管理
      • 1. 权限定义
      • 2. 文件权限
      • 3. 认识文件权限
        • 理解group
      • 4. 更改文件属性
        • “chmod“命令
        • 5. 权限不够的情况及解决
        • 6.改变当前文件的拥有者和所属组
        • 7. 查看文件
        • 8.Linux默认权限
        • 9. 题目
        • 10.粘滞位
        • 11. 权限总结

1. 权限定义

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

2. 文件权限

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

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

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

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

3. 认识文件权限

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

Linux学习笔记(2)_第1张图片

解释:前面的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.txt rwxrw-r–
rwxrwxrwx chmod u-x,g-x,o-r file.txt rw-rw–wx
rw- rw-rw- chmod u=x file.txt –xrw-rw-
rw-rw-rw- chmod g+x,o-rw file.txt rw-rwx—

2. 二进制改变权限

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

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

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

例:

000(八进制) 000000000(二进制) ---------(权限)
001 000000001 --------x
123 001010011 –x-w–wx
666 110110110 rw-rw-rw-

可以自己试试

使用:

chmod 000 file.txt

chmod 666 file.txt

chmod 123 file.txt

官方文档:

Linux学习笔记(2)_第2张图片

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

  1. 权限不够会报错

Linux学习笔记(2)_第3张图片

报错:cat: file.txt: Permission denied

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

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

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

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

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

1. chown

输入命令:chown root file1.txt

Linux学习笔记(2)_第4张图片

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

Linux学习笔记(2)_第5张图片

更改成功

2. chgrp

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

Linux学习笔记(2)_第6张图片

简便写法

Linux学习笔记(2)_第7张图片

7. 查看文件

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

如:file file1.txt

8.Linux默认权限

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

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

  1. 普通文件默认从666开始

    Linux学习笔记(2)_第8张图片

    默认的值转化过来应该是110 110 100也就是664,与666并不相同

    再接着往下看

  2. 目录文件默认从777开始

    Linux学习笔记(2)_第9张图片
    默认的值转化过来应该是111 111 101也就是775,与777并不相同

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

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

运算过程:

Linux学习笔记(2)_第10张图片

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

运算过程:Linux学习笔记(2)_第11张图片

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

Linux学习笔记(2)_第12张图片

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

9. 题目

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

必须具有w权限

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

必须具有r权限

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

必须具有x权限

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

10.粘滞位

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

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

答案是可以的

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

用法:

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

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

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

11. 权限总结

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

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

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

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

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

你可能感兴趣的:(linux学习笔记,linux,服务器,运维)