Linux中,文件或目录除了rwx及隐藏权限外,还有一些特殊的权限,这些权限包括 SUID/SGID/SBIT,系统中就直接存在这样的例子:

上例中,/tmp目录本身的权限中可以看到,不仅仅是rwx权限,而是有了t权限;而/usr/bin/passwd文件,也不仅仅有rwx权限,而是有了s权限。s、t就代表了不同的特殊权限。下面一一介绍这三种特殊权限。

SUID

SUID即Set UID的简写。当s标志出现在文件的owner权限组合中的x位时,比如上图中passwd文件的权限(-rwsr-xr-x),此时就被称为SUID的特殊权限。那该权限是什么意思呢?

举例来说,Linux为了提高本地用户账号信息的安全性,特别指定了/etc/shadow以加密密码的方式来存储用户的账户信息,同时这个文件的默认权限是-r--------,限定只有root用户才能“强制”储存,其他用户没有任何权限。可是你会发现,普通用户也是可以修改我们自己的用户密码的,那普通用户哪来的权限?这就是SUID特殊权限的作用。

SUID表示当请求执行包含SUID特殊权限的程序时,能够暂时拥有该程序所有者(对程序)的存取权限。假设普通用户A通过passwd命令更新自己的密码,而/usr/bin/passwd的所有者是root (root,root),也就是说,当A请求执行passwd命令时,实际上是暂时获得root(对/usr/bin/passwd)的执行权限,并进一步更新/etc/shadow的内容。

但如果该用户A使用cat去读取/etc/shadow时,就会被拒绝了,因为cat没有SUID的特殊权限,所以,A执行cat /etc/shadow时,是不能执行的。

需要注意的是,Linux规定SUID仅对系统中的二进制可执行文件设置有效,而且不可对Shell Script施加设置,毕竟Shell 脚本只是对二进制可执行文件的调度组合,最终也是要遵从binary file的权限设置。

SGID

相对于SUID,当所有者所在的用户组(group)的权限组合中可执行位(x)被s所取代时(例如---rws---),便构成SGID(即Set GID)的权限设置。SGID可以针对二进制文件或目录进行设置:

a.二进制可执行文件:则当请求执行该文件(程序)时,请求执行者所在的用户组 (即effective group)将暂时获得该程序(binary file)所属的用户组ID(group ID)的存取权限。

b.目录:假设目录A,此时在A目录下创建的文件或子目录所属的用户组ID,将自动被赋予A目录的组ID

SGID主要用于多人组成的项目开发上,一般比较少用到。

SBIT

我们认为,当文件系统“其他(others)”的权限组合中可执行位(x)被t所取代时(例如------rwt),便构成SBIT(Sticky Bit)的权限设置。SBIT顾名思义可以起到限制访问的作用,是容易理解而好用的设置,它只对目录有效。

当对一个目录A施加了SBIT设定以后,并且使用者对A目录有wx权限时,则使用者在A目录下所创建的个人文档(含目录)只有使用者本身或root可以执行删除、更名、移动等操作(是否可读依实际权限r而定),而不可修改其他用户的文件或目录。

最常见的就是在/tmp目录下了,各用户都可以在此目录下创建文件或子目录,但只能修改自己的文件或目录,而不能更改其它用户的。如:

上例中,root用户创建了新文件testroot,并赋予所有权限。用户zhang对/tmp也有r和w的权限,但zhang却没有权限删除root创建的testroot文件,就是因为/tmp的t权限的效果。

注意:SBIT一般仅针对目录施加有意义。

设置权限

特殊权限的设置也是使用数字的方式。以下是SUID/SGID/SBIT约定对应的八进制数值:

SUID为4

SGID为2

SBIT为1

设置时使用chmod命令,同时把表示特殊权限的数字放在其他三位数字权限的前面,如:

上图设置了SUID。

上图设置了SGID。

上图设置了SBIT。

需要注意的是,SUID只针对二进制文件设置,而SBIT只针对目录设置有意义,上例中并没有特殊强调。

有一种特殊情况,比如:

上图中,设置apple的普通权限为666,即所有人都没有x权限,此时,却设置了所有的特殊权限,那么,这样的特殊权限为“空权限”,表现样式为S和T都为大写。

转载于:https://blog.51cto.com/zhangqingli/1344255

Linux中文档与目录的特殊权限相关推荐

  1. Linux里新建文件/目录的默认权限

    Linux里新建文件/目录的默认权限 新建文件默认权限为666,新建目录默认权限为777. 但是要"减去" umask的值,umask的值可以使用umask命令看到,一般情况下,r ...

  2. linux如何建立隐藏目录,【Linux】文件与目录的默认权限与隐藏权限

    01. 文件默认权限:umask 文件的权限可以使用chmod来改变,但是我们默认创建文件的权限是什么?那就是与umask这个有关了.下来我们学习这个指令 1.1 简单使用umask [root@iZ ...

  3. linux 权限管理命令chown、chgrp、umask、linux新建文件或目录的默认权限755

    chown /bin/chown chown [用户] [文件或目录] 改变文件或目录的所有者 只有root可以改变文件或目录的所有者 root用户: mkdir /tmp touch /tmp/te ...

  4. linux文档与目录结构

    Linux文件系统结构 本文转自 https://www.cnblogs.com/pyyu/p/9213237.html Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有& ...

  5. Linux中文档去掉windows文本的多余的回车符(^M)

    1) 使用sed   去掉windows下的回车符 (注意^M 在linux 下写法 按^M 是回车换行符,输入方法是按住CTRL+v,松开v,按m) sed -i 's/^M//g' filenam ...

  6. 用一个小案例来解释linux中文件或目录的权限

    Linux中文档和目录的权限 众所周知 , Linux中文档的权限包括所有者权限(User).同组权限(Group)和其他权限(Other).使用rwx来作为表示,分别为read.write和exec ...

  7. linux查看msf安装目录,Ubuntu下安装Metasploit和Linux命令大全

    ①下载Metasploit下的Linux安装包,拷贝至Ubunto的/opt目录. ②在Terminal下运行命令"chmod +x /opt/framework-linux-4.0.0.r ...

  8. linux 锁定用户目录,Linux vfpd锁定用户目录

    在linux ftp配置中,为了防止用户cd 到其他目录,需要锁定用户的根目录. Step1:修改配置文件 [root@ess ~]# vi /etc/vsftpd/vsftpd.conf #chro ...

  9. bash: 无法为立即文档创建临时文件: 权限不够_世界顶级Linux大牛耗时三年总结出3000页Linux文档...

    众所皆知的,Linux的核心原型是1991年由托瓦兹(Linus Torvalds)写出来的,但是托瓦兹为何可以写出Linux这个操作系统?为什么它要选择386的计算机来开发?为什么Linux的发展可 ...

  10. linux下,MySQL默认的数据文档存储目录为/var/lib/mysql。

    0.说明 Linux下更改yum默认安装的mysql路径datadir. linux下,MySQL默认的数据文档存储目录为/var/lib/mysql. 假如要把MySQL目录移到/home/data ...

最新文章

  1. 练习2-14 求奇数分之一序列前N项和 (15 分)
  2. 苹果回应中情局攻击事件:许多漏洞已经得到解决
  3. python映射类型-python第二版7章笔记--映射和集合类型
  4. MySQL修改数据类型语句
  5. linux tcpdump抓包,wireshark实时解析
  6. Docker通过Cgroup 资源配置
  7. OpenStack精华问答 | OpenStack与计算虚拟化有什么关系?
  8. 现代php中文版,现代PHP
  9. android 自定义推流器,Android直播实现 Android端推流、播放
  10. 互联网日报 | 安邦保险集团将申请解散并清算;360中原总部落户郑州;英伟达400亿美元收购ARM...
  11. 逍遥自动秒收录导航网源码绿色版+全站SEO优化
  12. 关于spring注入
  13. Image(支持 XML 序列化),注意C#中原生的Image类是无法进行Xml序列化的
  14. linux 音频源码输出,linux下使用ffmpeg将amr转成mp3
  15. Iconfont-阿里巴巴矢量图标库
  16. 计算机显卡驱动异常,解决显卡驱动无法正常安装的问题
  17. Ubuntu下实现触摸板多指手势操作
  18. 如何区分精确率(precision)、准确率(accuracy)和召回率(recall)
  19. 微信发布小游戏扶持政策;滴滴上线“滴水贷”;美团将与百度合作无人驾驶送外卖丨价值早报...
  20. 分辨率并不是越高越好,因为人眼分辨能力存在极限

热门文章

  1. 基于阿里云服务器+wordpress构建自己的网站(全过程系列,无需任何编程知识)
  2. 【LeetCode】【字符串】题号:*387. 字符串中的第一个唯一字符
  3. 从零基础入门Tensorflow2.0 ----五、19. feature_column , keras_to_estimator
  4. 决策树系列(一)——基础知识回顾与总结
  5. ArcGIS学习总结(15)——影像空缺值蚕食填充批处理(Nibble)
  6. ENVI学习总结(八)——图像镶嵌
  7. endnote9安装
  8. 多线程(二)--同步及死锁
  9. uploadify http 302问题说明
  10. 蚂蚁员工人均都能买1套杭州的房子了?!好后悔,当初错失了蚂蚁...