shell命令以及运行原理

image.png

Linux权限的概念

image.png
从root用户切换到普通用户可以输入exit或者ctrl+d。

root拥有最高权限:
image.png
同时,su 【username】可以在普通用户之间进行切换:
有时需要sudo提升权限
image.png

但我们可能在有些时候,只有一条或几条指令需要暂时性使用root权限,也就是我们有临时权限提升的需要,这时我们可以在我们的指令前面加上sudo指令,就可以以root权限执行这条指令,但需要用户的密码和用户的root权限信任
image.png

Linux权限管理

01.文件访问者的分类(人)

  • 文件和文件目录的所有者:u—User
  • 文件和文件目录的所有者所在的组的用户:g—Group
  • 其他用户:o—Others

其实,我们以后进公司工作的话,我们都会加入一些项目组。而项目组的其它成员对于你个人来说就是属于other,但同组成员相对于完全陌生的人,理所应当拥有高于普通人的权限,所以为了方便小组之间的沟通合作,linux下对同组用户会专门设置一套权限

例如:有zzy1和zzy2两个用户,它们都可分为zzy组里 默认建立用户时是一个组对应一个用户,组名和用户名相同

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

image.png

a.文件类型

image.png

b.基本权限(r、w、x)

image.png

03.文件权限值的表示方法

a. 字符表示法
image.png
b. 8进制数值表示法
image.png

例如,对于文件拥有者的权限 r-x,对应的二进制位101,则用八进制表示成5。 所以3组用户的权限(拥有者、所在组,其他人)可用3位8进制数值表示。

04.文件访问权限的相关设置方法

chmod设置文件的访问权限

使用:chmod 【参数】 【权限】 【文件名】
其中:权限列表:

+表示为用户添加此权限 -表示删除权限 =表示赋予权限

参数列表中:

o表示other u表示user g表示group

使用示例:
image.png

chown修改文件拥有者

需要root权限
使用示例:chown user file.txt
image.png

chgrp修改文件所属组

使用与上面类似
另外,以上所有权限如果对目录使用,仅会修改目录本身的权限,如果想修改文件夹下所有文件的权限,可在参数列表中加入-R递归

05.r,w,x面向目录权限

如果没有r权限,则无法查看文件内内容,但却可以对文件内容进行修改
image.png
如果没有w权限,则无法在文件夹内创建和删除文件
image.png
如果没有x权限,则无法进入到文件夹中,也无法查看文件的详细信息
image.png

06.重要知识补充

粘滞位

上面介绍的目录权限的w权限,如果有此权限,就可以删掉文件夹中的内容
image.png
而不管文件夹的所有者是不是你,只要对应用户有文件夹的写权限,就可以任意删除文件夹下的文件
image.png
但我却只希望其它用户在这个文件夹上存放它们的数据,(需要w权限),但并不需要其它人删除我们的文件,怎么办?
我们就引入了粘滞位
使用:chmod +t 【文件】
image.png
示例:
image.png

权限掩码

我们仔细观察可以发现,在不同系统下,我们的文件默认权限是不一样的,那么,产生这种不同的原因是什么呢?

其实,我们在表示权限的时候,可以不光只使用r,w,x等字符来表示

如果我们把有权限记为1,无权限记为0,那么,我们每组的权限可以用一个三位二进制来表示,而每一个3位二进制我们可以转换成一个8进制数字

所以,我们可以使用3位8进制数字来表示某个文件的所有权限

比如,我们要开通所有权限,那么对应二进制就是111 111 111,换算为8进制就是777
所以,我们可以这样:
image.png
在linux系统下,文件夹默认权限是666,文件默认权限是777

而在每个系统有不一样的默认值,还受到掩码的影响

掩码:凡是掩码中位为1的,在结果中都会被置为0

公式:权限=mask(默认权限码) & ~umask(掩码)

设置掩码操作:umask 掩码值

注意:掩码的修改仅在本次运行中生效
image.png