SUID,SGID,Sticky Bit详解
2015-07-21 14:52
471 查看
先来看看两个文件
[root@tom tmp]# ls -ld /tmp;ls -l /usr/bin/passwd
drwxrwxrwt. 3 root root 4096 Oct 28 14:35 /tmp
-rwsr-xr-x. 1 root root 25980 Feb 22 2012 /usr/bin/passwd
Set UID
当s出现在文件拥有者的x权限上时,就被成位SetUID,简称SUID。
suid的限制与功能:
suid权限仅对二进制程序有效(binary program);
执行者对于该程序需要具有x的可执行权限;
本权限仅在执行该程序的过程中有效(run-time);
执行者将具有该程序拥有者的权限。
我们知道linux所有的账号密码都记录在/etc/shadow这个文件中,这个文件的权限为[----r-----. 1 root root]
意思是这个文件仅有root可以读且强制写入而已,那么普通用户tom改自己密码的时候又是怎么将自己的密码写入这个文件的呢?
这里就要说到一个命令:passwd(/usr/bin/passwd)
看看这个文件
[root@tom tmp]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 25980 Feb 22 2012 /usr/bin/passwd
由上述功能说明,可以知道:
tom 对于 /usr/bin/passwd这个程序来说具有x权限,表示tom能执行passwd,passwd的拥有者是root,tom执行passwd的过程中,会暂时获得root的权限,/etc/shadow就可以被tom所执行的passwd所更改。
Set GID
当s标志在文件拥有者的x位上是SUID,那么s在群组的x时则称为SetGID,SGID
[root@tom tmp]# ls -l /usr/bin/locate
-rwx--s--x 1 root slocate 31556 Aug 24 2010 /usr/bin/locate
与SUID不同的是,SGID可以针对文件或目录来设定,如果是对文件来说,SGID有如下功能:
SGID对二进制文件有用;
程序执行者对该程序来说,具有x权限;
执行者在执行的过程中将获得该程序群组的权限;
与SUID非常类似,当我们用tom这个账号去执行locate时,tom会取得slocate群组的支持,因此就能使用这个命令了。
除了二进制文件外,SGID也能用在目录上,当一个目录设定了SGID只有,他将具有如下功能:
用户若对此目录具有rx权限,该用户就能够进入此目录;
用户在此目录下的有效群组将会变成该目录的群组;
用途:若用户在此目录下具有w权限(可以新建文件),则使用者所建立的新文件的群组与此目录的群组相同。
Sticky Bit
SBIT只针对目录有效。他对目录的作用是:
当用户对此目录具有w,x权限,在该目录下建立文件或目录时,仅有自己与root才有权利删除该文件。
[root@tom tmp]# ls -ld /tmp;ls -l /usr/bin/passwd
drwxrwxrwt. 3 root root 4096 Oct 28 14:35 /tmp
-rwsr-xr-x. 1 root root 25980 Feb 22 2012 /usr/bin/passwd
Set UID
当s出现在文件拥有者的x权限上时,就被成位SetUID,简称SUID。
suid的限制与功能:
suid权限仅对二进制程序有效(binary program);
执行者对于该程序需要具有x的可执行权限;
本权限仅在执行该程序的过程中有效(run-time);
执行者将具有该程序拥有者的权限。
我们知道linux所有的账号密码都记录在/etc/shadow这个文件中,这个文件的权限为[----r-----. 1 root root]
意思是这个文件仅有root可以读且强制写入而已,那么普通用户tom改自己密码的时候又是怎么将自己的密码写入这个文件的呢?
这里就要说到一个命令:passwd(/usr/bin/passwd)
看看这个文件
[root@tom tmp]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 25980 Feb 22 2012 /usr/bin/passwd
由上述功能说明,可以知道:
tom 对于 /usr/bin/passwd这个程序来说具有x权限,表示tom能执行passwd,passwd的拥有者是root,tom执行passwd的过程中,会暂时获得root的权限,/etc/shadow就可以被tom所执行的passwd所更改。
Set GID
当s标志在文件拥有者的x位上是SUID,那么s在群组的x时则称为SetGID,SGID
[root@tom tmp]# ls -l /usr/bin/locate
-rwx--s--x 1 root slocate 31556 Aug 24 2010 /usr/bin/locate
与SUID不同的是,SGID可以针对文件或目录来设定,如果是对文件来说,SGID有如下功能:
SGID对二进制文件有用;
程序执行者对该程序来说,具有x权限;
执行者在执行的过程中将获得该程序群组的权限;
与SUID非常类似,当我们用tom这个账号去执行locate时,tom会取得slocate群组的支持,因此就能使用这个命令了。
除了二进制文件外,SGID也能用在目录上,当一个目录设定了SGID只有,他将具有如下功能:
用户若对此目录具有rx权限,该用户就能够进入此目录;
用户在此目录下的有效群组将会变成该目录的群组;
用途:若用户在此目录下具有w权限(可以新建文件),则使用者所建立的新文件的群组与此目录的群组相同。
Sticky Bit
SBIT只针对目录有效。他对目录的作用是:
当用户对此目录具有w,x权限,在该目录下建立文件或目录时,仅有自己与root才有权利删除该文件。
相关文章推荐
- LeetCode Implement Queue using Stacks
- Subsequence hdu3530
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第25讲:Break、Cintinue、Goto控制
- $_REQUEST变量数组header()函数
- 232 Implement Queue using Stacks
- ios学习之 初识UIBarButtonItem
- ${pageContext.request.contextPath} :JSP取得绝对路径方法
- UITextField
- UILabel、UIButton
- iOS Interface builder was unable to determine the type of xxx.xib
- DAC模式登陆(解决对象名'sys.sysobjvalues'无效)
- UIlable 设置行间距
- Sybase ASE 查询结果保存到文件 output a SQL query results to a file
- java中PriorityQueue优先级队列使用方法
- iOS总结控件一(UILabel)
- ios学习之 初识UINavigationController
- while循环中,break,continue,return的区别
- UITableviewCell滑动出现多级的控制按钮 - UITableViewRowAction
- poj 1679 The Unique MST
- poj 1679 The Unique MST