linux特殊权限SUID、SGID、SBIT
对于linux中文件或目录的权限,应该都知道普通的rwx权限(关于linux中rwx权限的看我的这篇博文http://www.cnblogs.com/javaee6/p/3994750.html)。我们先看看下面两个的权限是什么
非常奇怪,/tmp目录和 passwd文件的权限怎么怪怪的,怎么有s和t权限呢。看了下面的内容你就明白了。
1 SUID
当s出现在文件拥有者的x权限上时,如我们上面看到的/usr/bin/passwd这个文件的权限时-rwsr-xr-x,此时就被称为SET UID简称SUID.SUID对于一个文件有什么限制和功能呢?
SUID权限仅对二进制可执行文件有效
执行者对于该文件具有x的权限
本权限仅在执行该文件的过程中有效
执行者将具有该文件拥有者的权限
例如普通用户用passwd修改自己的命令,实际上最终更改的是/etc/passwd文件. 此文件时用户管理配置文件,只有root权限才能更改。
既然是root用户才拥有此权限,为什么我们可以通过passwd命令来修改密码呢,那这就要归功于passwd设置了suid权限位了。
此时普通用户通过执行passwd命令,临时拥有root权限,间接的修改/etc/passwd,以达到修改自己密码的权限。
2 SGID
当s出现在目录或文件所属群的x权限上时,此时就称为SET GID简称SGID,那SGID对文件和目录分部有哪些功能呢?
2.1 SGID对目录
使用者若对于此目录具有 r 与 x 的权限时,该使用者能够进入此目录
使用者在此目录下的群组将会变成该目录的群组
若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同
2.2 SGID对文件
SGID 对二进制可执行文件有效
程式执行者对于该文件来说,需具备 x 的权限
执行者在执行的过程中将会获得该文件群组的支援(用于改文件群组的权限)
3 SBIT
当s出现在目录其他用户的x权限上时,此时就称为Sticky Bit简称SBIT,那SBIT有哪些限制和作用呢?
仅对目录有效,对文件无效
当使用者在该目录下建立文件或目录时(有权限的情况下),仅自己与 root 才有权力删除新建的目录或文件
我们知道/tmp目录是这样的权限。
现在我们来验证下,先用root账号在tmp文件中创建一个文件test,然后用openstack(其他账号)进入该目录,删除test文件,看看发生什么情况
我们看到这样是不能删除文件的。因为/temp目录有SBIT权限。
4 怎么操作SUID、SBID、SBIT
操作这些标志与操作文件权限的命令是一样的, 都是chmod. 有两种方法来操作,
(1)符号类型改变权限
chmod u+s testbin-- 为testbin文件加上setuid标志.
chmod g+s testdir-- 为testdir目录加上setgid标志
chmod o+t testdir-- 为testdir目录加上sticky标志
(2) 数字类型改变档案权限
采用八进制方式. 对一般文件通过三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志, 则在这组数字之外外加一组八进制数字. 如 4666, 2777等. 这一组八进制数字三位的意义如下,
abc
a - setuid位, 如果该位为1, 则表示设置setuid 4---
b - setgid位, 如果该位为1, 则表示设置setgid 2---
c - sticky位, 如果该位为1, 则表示设置sticky 1---
设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如
rwsrw-r-- 表示有setuid标志
rwxrwsrw- 表示有setgid标志
rwxrw-rwt 表示有sticky标志
那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
作者:天魂地煞
网站:http://www.mypad.tk
出处:http://www.cnblogs.com/javaee6/p/4026108.html
如果,您认为阅读这篇博客让您有些收获,不妨收藏起来,给予评论下!
如果,您希望更容易地发现我的新博客,不妨关注下我!
如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博文!
本博客中未标明原文地址的文章归作者天魂地煞,欢迎转载,希望在文章页面明显位置给出原文连接!
分类:Linux,Linux-----基础与系统管理
标签:linux
好文要顶关注我收藏该文
«上一篇:Fiddler进行模拟Post提交数据,总为null解决方式
»下一篇:Linux FHS
posted @2014-10-15 13:15天魂地煞阅读(3700) |编辑收藏
文章搜索
最新文章
1. spring boot基础之servlet3.0和spring4.x零配置相关文章
2. jvm系列文章收集
3. java调用c/c++
4. linux top命令结果参数详解
5. kvm/qemu/libvirt学习笔记 (1) qemu/kvm/libvirt介绍及虚拟化环境的安装
6. 云计算设计模式系列文章
7. RSA算法原理
8. 数据库Sharding系列文章
9. spring bean的生命周期
10. spring HttpInvoker相关学习资料
文章归档
2017年8月 (1)
2017年2月 (1)
2017年1月 (1)
2016年8月 (1)
2016年7月 (1)
2016年3月 (1)
2015年12月 (1)
2015年11月 (7)
2015年10月 (4)
2015年9月 (8)
2015年8月 (17)
2015年7月 (10)
2015年6月 (7)
2015年5月 (8)
2015年3月 (6)
2015年2月 (4)
2015年1月 (7)
2014年12月 (7)
2014年11月 (4)
2014年10月 (10)
2014年9月 (13)
2014年8月 (1)
2014年7月 (5)
2014年6月 (12)
2014年5月 (39)
2014年4月 (56)
2014年3月 (4)
热门文章
1. 用html5 js实现浏览器全屏(15286)
2. java中的SPI机制(15267)
3. 代码提交时让svn忽略classpath、target、.project等(10323)
4. 深入理解Thread.sleep的含义(7627)
5. 从一道面试题来认识java类加载时机与过程(7553)
6. protobuf学习(1)-ubuntu14.04下protobuf2.6安装(5868)
7. js快速判断IE浏览器(兼容IE10与IE11)(4801)
8. linux中tar之解压和压缩常用(4464)
9. java中设置代理的两种方式(3850)
10. IT技术思维导图(3708)
11. linux特殊权限SUID、SGID、SBIT(3701)
12. The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.(3574)
13. linux中的输入从定向和输出重定向(3226)
14. HttpUrlConnection 的 setDoOutput 与 setDoInput(2149)
15. linux压力测试工具stress(1929)
16. linux 命令行中常用光标移动快捷键(1903)
17. html中的meta详解(1884)
18. 关于java中MessageFormat.format中单引号问题(1797)
19. java中可定制的序列化过程 writeObject与readObject(1753)
20. mysql行锁和表锁(1404)
我的微博
目录导航