🎁个人主页:我们的五年
🔍系列专栏:Linux课程学习
🌷追光的人,终会万丈光芒
🎉欢迎大家点赞👍评论📝收藏⭐文章
这篇文章主要理解权限的概念,以及如何更改权限,和有时候关于权限方面的指令不被允许的原因。
目录
🎡一.Linux权限的概念:
🎡二.更改权限:
1.更改rwx权限:
二.改变文件的拥有者,所属组:
🎡三.对于umask的理解:
🎡四.粘滞位的理解:
🎡一.Linux权限的概念:
权限=用户+文件/目录的属性
ll指令,或者ls -l可以查看文件的权限信息。
1.用户:
一个文件,目录,有三个分类:
1.user(u)文件拥有者。2.Group(g)文件的所属组。
3.Other(o)其他用户。
在用户匹配的过程中,只能匹配一次,从先到后,先是拥有者,然后是所属组,后面是其他人。
也就是说,要不就是拥有者,要不就是所属组,要不就是其他人。
比如首先匹配的是拥有者,对于拥有者没有的权限,而所属组有的权限,拥有者也是没有的。
对于不同的用户,因为会在文件/目录的1.拥有者2.所属组3.其他用户,这三个用户变化,所以不同的用户,权限可能不同。
注意:上面的用户是针对普通用户的,超级用户root无视权限。
下面这个,前面的是这个文件或者目录的拥有者,后面的是文件/目录的所属组。
2.文件/目录属性:
一个文件/目录,我们可以更改拥有者,所属组,其他人,这三个类别的权限来改变权限。
对于文件/目录,有三个权限,r权限,w权限,x权限。有三个组别,那就有九个字母,-表示不存在这一权限。
比如:
先不管最前面的字母。
1.上面test.cpp的权限是:前面三个是拥有者的权限(rw-)表明这个文件的拥有者有r权限和w权限,没有x权限。
2.中间的三个字母(r--),表示所属组有r权限,没有w权限和x权限。
3.后面的三个字母,表示其他人的权限,也是(r--)也只有r权限。
🏝1.r权限:
对于文件来说,有r权限,那就可以读取文件的内容可以进入文件看,但是不能修改。对于目录来说,就可以列举查看目录下的子目录/子文件的信息。
🏝2.w权限:
对于文件来说,w权限可以在文件中写东西,对于目录来说,可以在这一目录下,新建或者删除目录下的子文件/子目录。
🏝3.x权限:
对于文件来说,是执行权限。注意:一个文件要能执行,不光要有x权限,而且要这个文件本身就是可以执行的。
对于目录在说,x权限是可以进入这一目录。
🎡二.更改权限:
1.更改rwx权限:
chmod:
功能:设置文件的访问权限。
格式:chmod [参数] 权限 文件名。
常用选项:
●R 递归修改目录文件的权限。
注意:只有文件的拥有者,和root(超级用户)可以更改。
参数有:+-=
u:拥有者。
g:所属组。
o:其他用户。
a:所以用户。
例如:
让u(拥有者加上x权限)
更改方式也可以用三个八进制位。
r:100(十进制:4),w:010(2),x:001(1)。
rw:110(6),rx:101(5),wx:011(3)。
rwx(7)。
操作说明:
chmod 三个八进制数 文件名称
二.改变文件的拥有者,所属组:
1.更改拥有者:
chown 新的拥有者 文件名称
2.更改所属组:
chgrp 新的所属组 文件名称
-R 递归修改文件所属组
🎡三.对于umask的理解:
新建一个文件的默认权限是=0666(rw-rw-rw-)。
新建一个目录的默认权限是=0777(rwxrwxrwx)。
但是我们新建的文件或者目录开始的权限却不是这个,这是为什么呢?
因为最终的权限是开始的权限&(~umask)
超级用户的umask默认值是0022,普通用户的0002。
所以超级用户新建的目录为0777&(~0022)=0755。
新建文件为0666&(~0022)=0644。
更改umask的值:
umask 新的值
🎡四.粘滞位的理解:
首先我们要理解,删除一个目录或者文件的权限是取决于你是否拥有上一级目录的w权限。而不是看要删除文件的w权限。
因为某种原因,我们和别人需要建一个共享目录,这样所有人的权限都是rwx(如下)。但是我们在这里写的东西,虽然别人没有写的权限,但是别人却可以删除我们在share目录下新建的文件。因为删除share目录里的文件夹,取决于你在share是不是有w权限,但是这是共享的目录,所以人都可以在share目录下删除别人的文件。
在这样的情况下,我们就引入了粘滞位。
给目录下、加上粘滞位,即使你对这一目录有写的权限,只要这个文件不是你的,你就不能删除这个文件。