Linux文件类型与文件权限详解(二)

今天继续给大家介绍Linux基础知识,本文的主要内容是Linux文件类型和文件权限,尤其着重介绍了Linux系统的特殊权限。

一、Linux特殊权限简介

在Linux系统中,除了读、写、执行三种基本权限外,还具有其他的一些特殊权限,这些特殊权限,适用于一些特殊的场景,在这些场景下,基本的读、写、执行权限不能很好的完成访问控制的任务。但是有了这些特殊权限外,却可以帮助我们更好的管理文件。
在Linux系统中,一共有三种特殊权限,分别是SUID、SGID和Sticky。
这三种权限对文件和目录的影响如下表所示:

权限对文件的影响对目录的影响
SUID以文件的所属用户身份执行,而非执行文件的用户
SGID以文件的所属用户同组用户的身份执行,而非执行文件的用户在该目录中创建新文件时,新文件的文件属组为该文件的属组而不是创建者的属组(创建新文件的前提还是该用户必须有在该目录中写的权限)
Sticky对目录拥有写入权限的用户仅可以删除属主为该用户的文件,而不能删除其他用户的文件。

二、Linux特殊权限表示

类似Linux普通权限r、w、x的权限表示方法,SUID、SGID和Sticky采用了4、2、1的权限表示方式,因此我们在使用umask查看文件权限时,会看到一共有四个数字,后面三位数字是表示文件的普通权限,而第一位就是表示文件的特殊权限,该位数字的计算方式与后三位的计算方式相同。
在这里插入图片描述

三、Linux特殊权限应用

(一)SUID权限应用

典型的具有SSID权限的文件是/usr/bin/passwd命令,使用命令stat后面跟上文件名可以查看该文件的特殊权限,/usr/bin/passwd命令权限如下所示:
在这里插入图片描述
可以看出,该文件权限是4755,即具有SUID权限。
为什么/usr/bin/passwd命令要具有SUID权限呢?我们知道,passwd命令是用于修改用户的口令的,而修改用户口令的本质是对/etc/shadow文件的修改,我们可以查看/etc/shadow文件的权限,如下所示:
在这里插入图片描述
可以看出,/etc/shadow具有000的权限,如果作为root用户,自然可以无视权限,直接对该文件进行修改,但是为什么其他的普通用户可以也可以执行passwd命令修改该文件呢?就是因为/usr/bin/passwd命令具有SUID权限,当普通用户执行passwd命令时,会使用该文件的属主,root的权限运行,因此就可以修改/etc/passwd文件了。

(二)SGID权限应用

在Linux系统的实际应用中,SGID权限确实没有特别的应用之处,因此尽管该权限确实存在,但是一般没有人去使用它,在这里我们仅演示SGID权限的功能,如下图所示:
在这里插入图片描述

(三)Sticky权限应用

在Linux系统中,典型的具有Sticky权限的就是/tmp文件夹。如下所示:
在这里插入图片描述
/tmp目录的作用是用于共享,因此该目录具有777的普通权限,任何用户都可以在该目录下读、写和执行文件,但是,为了防止一个用户删除了其他用户所创建的共享文件,/tmp就拥有这样一个Sticky权限,这样一来,只有该文件的属主,即创建文件的用户,才可以删除文件。

四、Linux特殊权限表示

除了使用stat命令可以查看指定文件的特殊权限以外,直接使用ll命令也可以列举出当前文件的权限,如下所示:
在这里插入图片描述
可以看出,特殊权限占用了普通权限中的第3位、第6位和第9位来进行表示。如果第3位上是s,则表示该文件具有SUID权限;如果第6位上为s,则表示该文件具有SGID权限;如果第9位上为t,则表示该文件具有Sticky权限。然而特殊权限占用了普通权限执行权限位以后,如何判断该文件是否具有属主、同组用户和其他用户的执行权限呢?原来,可以根据特殊权限的大小写来进行判断,如果特殊权限位上是小写,则表示该文件在该特殊权限位上具有写权限,如果特殊权限位上是大写,则表示该文件在该特殊权限位上没有写权限。由此分析,上图中文件的权限应该是7777。
而7666权限的文件如下图所示:
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/120591863

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值