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
Linux文件类型与文件权限详解(二)相关推荐
- linux 进程间通信 dbus-glib【实例】详解二(下) 消息和消息总线(ListActivatableNames和服务器的自动启动)(附代码)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
- linux 进程间通信 dbus-glib【实例】详解二(上) 消息和消息总线(附代码)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
- Linux下的sort排序命令详解(二)
有时候学习脚本,你会发现sort命令后面跟了一堆类似-k1,2,或者-k1.2 -k3.4的东东,有些匪夷所思.今天,我们就来搞定它--k选项! 1 准备素材 [root@FDMdevBI opt]# ...
- linux 进程间通信 dbus-glib【实例】详解四(上) C库 dbus-glib 使用(附代码)(编写接口描述文件.xml,dbus-binding-tool工具生成绑定文件)(列集散集函数)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
- linux 进程间通信 dbus-glib【实例】详解三 数据类型和dteeth(类型签名type域)(层级结构:服务Service --> Node(对象、object) 等 )(附代码)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
- linux 进程间通信 dbus-glib【实例】详解一(附代码)(d-feet工具使用)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
- Linux 下 TC 命令原理及详解<一>
文章目录 1 前言 2 相关概念 3 使用TC 4 创建HTB队列 5 为根队列创建相应的类别 6 为各个类别设置过滤器 7 复杂的实例 Linux 下 TC 命令原理及详解<一> Lin ...
- Linux文件类型与文件权限详解(一)
今天继续给大家介绍Linux基础知识,本文的主要内容是Linux文件类型和文件权限. 一.Linux文件类型 在Linux系统下,一切皆文件.文件又可以分为普通文件和特殊文件,普通文件包括可执行文件. ...
- linux文件权限详解
linux文件权限详解 一.文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限: ...
- 每天一个linux命令(2):文件权限详解
Linux文件权限详解 文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允 ...
最新文章
- 他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元丨开源...
- java手机端播放.swf_Android使用WebView播放flash的方法
- c语言输入数字变成星期几,C语言程序设计: 输入年月日 然后输出是星期几
- vs2005c语言连接mysql_VS2005连接MySQL C API
- ubuntu~vim操作
- 做运营,你需要“一张画布绘到底”
- ***工具CC***的思路及防范方法
- 致初级开发者的一封信:坚持写代码!
- targetFilterLifecycle的作用
- C#设计模式之7-桥接模式
- django解决借用Model使用数据库时报错 AttributeError: Manager isn‘t accessible via xxxxxModel instances
- C#下载文件和将文件转换为数据流下载的示例
- C++ STL unordered_map按照value排序
- mysql int 11 最大多少_mysql - mysql中int(11)的列大小是多少? - 堆栈内存溢出
- Wings与parasoft c++ test在单元测试用例自动生成能力的比对
- 这个AI批量作画每小时九张,与毕加索同台竞技,还真有人买
- 易飞ERP PLM集成 解决方案
- 易到完成股权变更 乐视仍未完全退出中信系入局
- 天然产物分子机制研究(内含彩蛋)——药物靶点预测系统案例分析2
- 苹果iphone APP界面设计尺寸
热门文章
- 区块链开源框架 HyperLedger Fabric 学习思路分享
- 博文视点大讲堂第12期、第13期讲座文件下载
- 写软件的需求分析全方位攻略
- 1.4 Linux文件系统与目录结构
- 正则表达式:re.match、re.search、re.sub、re.compile、findall、re.finditer、re.split
- 6.6 BERT家族02——sentence-BERT、BioBERT
- Java正则表达式小记
- 中文停用词文档_实战:朴素贝叶斯对文档进行分类
- 外星人电脑为什么那么贵_为什么系统门窗那么贵?
- Android Framework 全面分析 FallbackHome