今天继续给大家介绍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

Linux文件类型与文件权限详解(二)相关推荐

  1. linux 进程间通信 dbus-glib【实例】详解二(下) 消息和消息总线(ListActivatableNames和服务器的自动启动)(附代码)

    linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...

  2. linux 进程间通信 dbus-glib【实例】详解二(上) 消息和消息总线(附代码)

    linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...

  3. Linux下的sort排序命令详解(二)

    有时候学习脚本,你会发现sort命令后面跟了一堆类似-k1,2,或者-k1.2 -k3.4的东东,有些匪夷所思.今天,我们就来搞定它--k选项! 1 准备素材 [root@FDMdevBI opt]# ...

  4. linux 进程间通信 dbus-glib【实例】详解四(上) C库 dbus-glib 使用(附代码)(编写接口描述文件.xml,dbus-binding-tool工具生成绑定文件)(列集散集函数)

    linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...

  5. linux 进程间通信 dbus-glib【实例】详解三 数据类型和dteeth(类型签名type域)(层级结构:服务Service --> Node(对象、object) 等 )(附代码)

    linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...

  6. linux 进程间通信 dbus-glib【实例】详解一(附代码)(d-feet工具使用)

    linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...

  7. Linux 下 TC 命令原理及详解<一>

    文章目录 1 前言 2 相关概念 3 使用TC 4 创建HTB队列 5 为根队列创建相应的类别 6 为各个类别设置过滤器 7 复杂的实例 Linux 下 TC 命令原理及详解<一> Lin ...

  8. Linux文件类型与文件权限详解(一)

    今天继续给大家介绍Linux基础知识,本文的主要内容是Linux文件类型和文件权限. 一.Linux文件类型 在Linux系统下,一切皆文件.文件又可以分为普通文件和特殊文件,普通文件包括可执行文件. ...

  9. linux文件权限详解

    linux文件权限详解 一.文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限: ...

  10. 每天一个linux命令(2):文件权限详解

    Linux文件权限详解 文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允 ...

最新文章

  1. 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元丨开源...
  2. java手机端播放.swf_Android使用WebView播放flash的方法
  3. c语言输入数字变成星期几,C语言程序设计: 输入年月日 然后输出是星期几
  4. vs2005c语言连接mysql_VS2005连接MySQL C API
  5. ubuntu~vim操作
  6. 做运营,你需要“一张画布绘到底”
  7. ***工具CC***的思路及防范方法
  8. 致初级开发者的一封信:坚持写代码!
  9. targetFilterLifecycle的作用
  10. C#设计模式之7-桥接模式
  11. django解决借用Model使用数据库时报错 AttributeError: Manager isn‘t accessible via xxxxxModel instances
  12. C#下载文件和将文件转换为数据流下载的示例
  13. C++ STL unordered_map按照value排序
  14. mysql int 11 最大多少_mysql - mysql中int(11)的列大小是多少? - 堆栈内存溢出
  15. Wings与parasoft c++ test在单元测试用例自动生成能力的比对
  16. 这个AI批量作画每小时九张,与毕加索同台竞技,还真有人买
  17. 易飞ERP PLM集成 解决方案
  18. 易到完成股权变更 乐视仍未完全退出中信系入局
  19. 天然产物分子机制研究(内含彩蛋)——药物靶点预测系统案例分析2
  20. 苹果iphone APP界面设计尺寸

热门文章

  1. 区块链开源框架 HyperLedger Fabric 学习思路分享
  2. 博文视点大讲堂第12期、第13期讲座文件下载
  3. 写软件的需求分析全方位攻略
  4. 1.4 Linux文件系统与目录结构
  5. 正则表达式:re.match、re.search、re.sub、re.compile、findall、re.finditer、re.split
  6. 6.6 BERT家族02——sentence-BERT、BioBERT
  7. Java正则表达式小记
  8. 中文停用词文档_实战:朴素贝叶斯对文档进行分类
  9. 外星人电脑为什么那么贵_为什么系统门窗那么贵?
  10. Android Framework 全面分析 FallbackHome