对于Linux是笔者第一次的介绍,而对于的基础指令是没有介绍的,可以参考《Linux实验教程》去了解相关指令,本篇博客则只是介绍了与权限相关的指令!
权限,顾名思义就是在一定范围程度上可以行使的权利的大小!
在Linux系统下,分为以下两种用户:
超级用户(root):自由度最高,不受限制
普通用户:受一定限制
一般可以使用,su指令在二者之间进行转换!
因此,有以下命令:
su [用户名]
:切换用户
在截图的最前边,是存在r、w、x这些符号的,而这些符号的含义是什么呢?
r:读权限,对于文件而言拥有读取文件的权限,对于目录而言具有浏览该目录的权限!
w:写权限,对于文件而言具有修改文件的权限,对于目录而言具有删除移动目录内文件的权限!
x:执行权限,对于文件而言,拥有执行文件的权限,对于目录而言具有进入目录的权限!
观察上述图片,第一个空格之前是存在10位字符的,那么这些字符在不同位置的意义是什么呢?
而对于上述权限用以下的图片进行解释:
那么文件类型是什么呢?
d:文件夹
b:块设备文件
p:管道文件
c:字符设备文件
s:套接口文件
-:普通文件(源代码,库文件,可执行程序)
l:软连接
关于这些文件到底是什么,目前先不进行介绍,只需知道在第一位是文件类型是哪一种即可!
文件和文件目录的所有者:u
文件和文件目录的所有者所在组的用户:g
其他用户:o
所以上述图片就得已解释了,现在看如下例子:
此时,test文件是1个普通文件,拥有者可以读和写,不可以执行;所属组可以读和写,不可以执行;其他人只可以写,读和执行都不可以操作!
而一般新建文件夹的默认权限是0666,目录的默认权限是0777。
而上述两个新建的文件和目录的初始权限却是664和775,这是因为在Linux中存在umask文件掩码,而在创建目录或者文件的时候要受到umask的影响,而普通用户的文件掩码是0002,root用户的文件掩码是0022。
umask 权限值
功能:设置新的文件掩码
通过上述的文件掩码,产出的文件权限是:umask & ~mask(mask是文件的默认权限,也就是666或者777),关于这一点可以上机去验证!
chmod [参数] 权限 文件名
//R->递归修改目录的文件权限
//只能文件的拥有者和root才可以执行此命令来改变文件的权限
1️⃣
+表示增加权限
-表示缩小权限
=赋予权限(会清除所有权限,只保留=右边表示的权限)
u表示拥有者
g表示所属组
o表示其他用户
a表示所有用户
2️⃣
chmod 文件权限八进制形式 文件名
chown 用户名 文件名
//改变文件的拥有者
chgrp 所属组名 文件名
//改变文件或目录的所属组
操作与上述类似,就不进行举例了,而需要注意的是chown与chgrp我都是在root下完成的。如果用文件或者目录的拥有者去改变文件拥有者或者所属组的时候,如果没有将普通用户添加到信任目录里面的话,这个操作就会失败!具体的后面会介绍!
现在先看如下例子:
此时,可以得出结论,如果对于目录存在写权限,就可以删除目录中的文件了,即使目录中的文件并不提供删除的权限!
为了解决上述的问题,此时也就引入了粘滞位的概念!
chmod +t 目录名
给目录进行上述操作,此时目录权限就变成了rwxrwxr-t,此时尽管所属组用户拥有rwx权限,也不能删除该目录下的文件了,对文件在一定程度上进行了保护!
关于Linux权限的概述也就到此为止了,有问题的欢迎私信我!