Linux权限(内容超详细)& 粘滞位

本文详细介绍了Linux系统中的文件权限概念,包括文件和目录的所有者、所属组和其他用户的权限划分,以及超级用户与普通用户的区别。特别强调了粘滞位的作用,确保目录下文件的安全性,即使用户具有w权限,也无法删除不属于自己的文件。
摘要由CSDN通过智能技术生成

目录

Linux系统文件权限

目录的权限

粘滞位


权限是什么?

权限一定是用来限制人的,简单来说就是你能不能(有权限)做某个事情。

权限要有对应的操作对象,一定要有对应的满足人的需求的属性。你在Leetcode看电影,哪怕你会员冲到爆,也没有电影给你看,也即是没有对应的属性给你。所以权限要有对应满足人的需求的属性

文件访问者的分类

文件或者文件目录的拥有者:u -> user

文件或者文件目录的所属组:g ->group

文件或者文件目录的其他用户:o ->other

Linux下有两种用户:超级用户、普通用户

超级用户:在Linux系统,可以做任何事情,没有权限的限制

普通用户:在Linux下,做有限的事情,受到权限的限制

超级用户的命令提示符是 #    普通用户的命令提示符是  $

Linux下的文件

-rwxrwxrwx 1 hhh hhh   12 Nov 21 10:12 file.txt

Linux系统文件权限

文件权限属性->对应操作属性:r    w     x

注意:一个文件是否可执行,这个文件一定是有x权限&这个文件是可执行程序

i.读r:Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

ii.写w:Write对文件而言,具有修改文件内容的权限、写入文件内容;对目录来说具有删除移动目录内文件的权限

iii.执行x:execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

iv.“—”表示不具有该项权限

注意:只有 文件拥有者 或者 root 用户才可以修改文件的权限

以这个文件为例子,我现在是文件的拥有者和所属组,第一个 ‘ - ’ 说明这个文件是普通文件类型

-rwxrwxrwx 1 hhh hhh   12 Nov 21 10:12 file.txt

现在向这个文件写入  hello Linux

echo "hello linux" > file.txt 

此时文件的内容就是“ hello Linux”

因为我是文件拥有者,只需要看拥有者(u->user)的权限,前三个字符,u减r就是去掉权限

把读r权限去掉:

chmod u-r file.txt

此时我们在读取文件的内容

系统就会告诉你权限被拒绝,也就是说你没有这个文件的读r权限,是不能访问文件的内容的,哪怕你是文件的拥有者,也访问不了

可能你会疑惑,我虽然拥有者的权限没有读r权限,但是我同时也是所属组啊,所属组有读r的权限,我为什么不能访问呢?

这是因为Linux下,当用户访问文件的时候,会先判断你是不是文件的拥有者,是的话就不在判断你是不是别的组别了,只看拥有者的权限。如果不是,则按顺序判断下一个组别,就是group所属组,如果是,那么就不在判断别的组别了,就只看所属组的权限,如果以上的都不是,那就是other组了,就只看other组别的权限

此时我们在把读r权限加回来,在读取里边的内容

chmod u+r file.txt

有了读r权限就能读取文件里边的内容了

此时我们在向文件写入一个Hello  Linux

把写w权限去掉,

 chmod u-w file.txt

现在这个文件的拥有者没有写w的权限了,此时我们在往文件里写入  Leetcode

系统会提示你说权限被拒绝,也就是说你没有这个文件的写w的权限,你是不能对文件写入或者修改内容的

此时我们把写w权限加回来 , 把里边所以的内容清空,然后在把 Leetcode 写入文件中

chmod u+w file.txt

所以一个文件具有w权限,是可以对文件写入内容和修改文件内容的

最后还剩下一个执行x权限了,那么是否能执行这个文件呢?

结论是不执行的,为什么具有x权限却不能执行这个文件呢?这是因为

一个文件是否能执行取决于

1、这个文件必须有x权限

2、这个文件真的是可执行程序

接下来演示一下other的权限

su 用户名  输入用户密码    就会切换用户并且保持当前的工作目录

还是以这个文件为例

此时zzz用户,不是拥有者,也不是所属组,那么zzz用户就是other组别

从上图可以知道,此时的other组别有rwx权限

上图可以验证看到other组确实是具有 读 和 写 和 x 都有权限的

此时我们 切换到文件拥有者的用户把other组别的 rw权限去掉

注意:只有 文件拥有者 或者 root 用户才可以修改文件的权限

把other组别的rw权限去掉后,在切换成zzz用户读取和写入

可以发现,此时用户zzz作为other身份确实读取不了和没有修改这个文件的权限了

接下来用root超级用户演示

此时root也是other组别,那么它是否能够对文件进行读取和写入或者修改内容呢?甚至把它删除了可以吗?

结论是可以的,我root不仅可以读取、写入、修改,我甚至还能把你删除了。就是这么霸道

root用户下,没有权限,对root用户来说没有任何隐私,权限是限制普通用户的,所以也体现处root用户的重要性,在公司一般只有组长,或者更高级别的人才具有root账户密码,所以root用户的密码安全性也尤其重要

接下来演示的是

目录的权限

目录的权限跟文件的权限本质是一样的,只是有个别权限有差异

以这个目录为例

此时发现进不了这个 目录

思考一下:一个目录能否打开,取决于它有rwx 中的哪个权限?

结论是一个目录具有x执行权限才可以打开进入这个目录

现在我们能打开进入目录了,那么能否看到(读取)这个目录下的内容呢?

结果是不可以的,因为该目录没有读r权限

现在把目录的读权限加上     

chmod u+r test

所以一个目录下的内容,能否查看读取取决于这个目录的读权限

此时我想在这个目录下创建一个文件一个file.txt的文件

对不起,你不可以在这个目录创建文件,因为在这个目录你没有w权限

现在把w权限加上 

chmod u+w test

所以一个目录下,能不能创建文件或者删除文件,取决于用户有没有w权限

现在切换成root用户,并且在这个目录下创建root.txt文件

然后把这个root.txt文件的权限全部去掉,

chmod a-rwx root.txt 

 a是所有,这里表示所有组别

然后再切换到hhh普通用户,并且读取root.txt  和写入内容

hhh用户没有这个文件的读r权限和写w权限,不能做对应的操作,hhh用户就想:我既然读取不了你也写入不了内容,那我不如把它给删除了

可以看到,这个文件被删除了,所以,一个文件是否可以被删除,并不取决于文件本身,而是取决于它所在的目录,用户是否具有w权限,哪怕你是root创建的文件我也可以删除。

切换用户 zzz 

可以看到,此时zzz用户也具有这个目录的w权限,那么我们是不是也可以删除文件呢?

结论是可以的,虽然这个文件不是zzz用户创建的,但是只要具有目录的w权限就可以对这个目录下的文件进行删除

于是, 问题来了~~ 换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写 权限. 这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉? 

为了解决这个不科学的问题,Linux引入了粘滞位的概念

粘滞位

给目录中的other设置的一个权限位,具有x权限的意义,同时也具有进一步对目录权限进行特殊限定

该目录的里的文件,只有root或者或者文件拥有者才有进行权力删除,其他人一概不允许

我现在是这个目录的拥有者,现在我要加上粘滞位 chmod +t test

此时我们切换用户 zzz

此时zzz用户不是文件的拥有者,但是zzz用户具有目录的w权限,那么还能不能像之前那样把这个文件删除呢?

结论是不可以的,系统直接提示你不允许执行操作。哪怕你再这个目录下拥有W权限也不能删除。原因是这个目录设置了粘滞位,该目录下的文件只有文件的拥有者或者root的用户才可以删除

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值