绪论
当时间的主人,命运的主宰,灵魂的舵手。上一回已将基础权限全部学习完了,本章开始我们将进入到权限的学习。
话不多说安全带系好,发车啦(建议电脑观看)。
附:红色,部分为重点部分;蓝颜色为需要记忆的部分(不是死记硬背哈,多敲);黑色加粗或者其余颜色为次重点;黑色为描述需要
思维导图:
要XMind思维导图的话可以私信哈
1.Linux下用户的分类
知识点:
- root:超级用户,不受权限约束
- 普通用户:在root下创建的普通用户adduser,做有限的操作
细节:
用户切换的方法:
从普通用户切换到root:
su :
按 Ctrl+d / 输入exit 退回到原本的用户
虽然用户变成了root,但本质还是在普通用户下只是用户变了。
并且我们需要知道无论是普通用户还是root用户都需有自己的密码,并且我们尽量不要创建成一样的命密码
su - :
相较于su 就是此时是真的root用户登录了
从root切换到普通用户(退出方法一样,但root不需要密码就能进到普通用户)
su 用户名 :
从普通用户 -> 普通用户的话:
在普通用户时,我们可能有时候对某些命令没有权利使用所以就需要,对某个指令提权:
sudo 加指令
不能使用是因为,系统不相信我们 ,我们此时还没有进到信任白名单中(无法提权)
就是,对此我们加入白名单的方法我们后期再讲
2.Linux权限管理
知识点:
权限跟人、事有关,针对不同的人和事就有不同的权限。
而对于文件来说,文件的属性有:读、写、执行 (r 、w 、 x)
一个文件下有如下特征:
细节:
文件的意义和文件的后缀没有太大的关系,如一个可执行程序不需要后缀一定是.out 就能执行该程序。 但注意如:gcc编译器编译一个C语言程序(.c为后缀) 以及一些 不是Linux的来识别文件时还是需要查看后缀的
Linux中对于后缀来说,看用户自己的需求可要可不要
文件的类型:
d:文件夹
-:普通文件 (文本、可执行程序、库)
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
在Linux中分为:拥有者、所属组、其他人
其中拥有者好理解就是文件的权限者(root比较特殊他就是权限),所属组类似朋友他给了权限的话也能进行一些操作,同理其他人就是非拥有者和所属组的,他们也是通过权限来限制能力
root , 不受权限的约束
同样下面这种情况对于非所属组/拥有者的都无法进行读写,但root可以
3.权限的修改指令
知识点:
chmod:设置文件的访问权限
- u表示拥有者(user) 1. +-权限即可 : 如 u + r (就等于拥有者加上读权限以此类推
- g表示所属组(group) 1. 同理 +-权限即可 : g + rwx (所属组加上 读 写 可执行 权限
- o表示其他人(other) 1. 同理+- 权限即可 : o-r (其他人减去读权限)
- 若想一次性把所有人的权限都修改那就可以用a 1. a + rwx 就把所有人都加上了 读写可执行权限(当然也能分开写 a + rwx,g+ rwx,o+rwx)2. a - rwx 把所有人都减去 ... 权限
具体语法为 : chmod 修改权限 文件名
例如:
把所有人都改成 rwx此时就能进入到ZYK的目录下了(前面讲权限哪里是进不去别人的家目录里的)
chown:改变拥有者,因为改变拥有者需要一定权限,所以需要使用root/sudo提权(话句话说给别人东西需要别人同意,而在Linux暂无这种情况,所以只能用更加强制的方法)
并且当你把东西给了就是别人的了不属于你了,拥有者就不是你了,你的权限将会受到身份的改变而改变
chgrp:改变所属组的人,方法一样(得使用root/sudo提权)
细节:
修改权限方法其实还有八进制的方法(代替rwx):
拿下面举例:**r-- : 100(4) 、rw- : 110(6) 、rwx: 111(7) 、r-x : 101(5) 、--x : 001(1) **
、-w- : 010(2) 、 -wx :011(3)
有了这八进制的表示方法,我们就能直接通过八进制来代替(rwx)进行权限的修改
此时 777 就表示 rwx rwx rwx
再改成 444 那就全都只有 读了
附:
每次每人都只能用一种身份去对应文件,当同时有两种身份时,都是只看前面的身份,若前面的不符合那就不会再往后看了
** 一次把东西要回来我们可以:**
命令行提示符为** $是普通用户 、 #是root用户**
4.umask
知识点:
功能:查看或修改文件掩码(直接输入umask查看,在umask后面加数值改变掩码)
Linux下规定的是:
新建文件夹默认权限=0 666(第一位的0表示8进制)
新建目录默认权限=0 777
而观察到的却是:
细节:
对于上面的情况是因为有权限掩码的存在才导致这种情况的发生
因为,凡是在umask出现的权限,就不会再文件中出现:
一般默认的umask = 0002 (000 000 010)
所以对于默认的 666 777 最终就会被umask影响成 664 和 775:
666 : 110 110 111
** 000 000 010**
664 : 110 110 100 (等同于最终权限 = 起始权限 & (~umask))
总结来说:umask 可以用来改变创建好时的文件权限的起始
umask 可以自行修改,直接在umask后面加上你要改成的umask值
5.目录的权限
知识点:
对于目录来说,他的r w x 和普通文件普通有些不同
对于目录来说,他们能否进入到目录内主要是与 x 可执行有关
当只是没有 r 和 w 时是能进入到目录里,但是不能查看目录内部的文件内容以及不能在目录里面创建(更改、删除)文件 等,
若直接没有 x 那直接就进不去文件了
所以就得出如下目录的权限规则:
6.粘滞位
知识点:
前提:
当在一个共享目录shard(此时这个目录应该是root创建在根目录下,才能实现共享,否则在别人的家目录内,若不改变权限默认是不能进入到别人的家目录中的)
其他用户也都能进入到这个共享目录下,并且像内部写一些共享的东西
此时就能在这个目录下写共享文件了
所以因为在目录下其他人也有w权限,所以可以把别人创建的文件给删了:
这是一种不好的行为,因此我们需要限制这种行为的发生,而 粘滞位 就是为了防止目录下这种情况的发生 :
粘滞位的使用方法:
** 此时原本x的位置就会变成t**
** 然后就不能删除他人的文件了 **
附:
其实根目录下已默认生成了一个临时共享的空间,在根目录下的tmp目录
本章完。预知后事如何,暂听下回分解。
如果有任何问题欢迎讨论哈!
如果觉得这篇文章对你有所帮助的话点点赞吧!
持续更新大量Linux细致内容,早关注不迷路。
版权归原作者 溟洵 所有, 如有侵权,请联系我们删除。