[SUID]
[概念]什么是SUID权限? 当普通用户执行某个SUID文件的时候,那么执行的过程中,他的身份会变成这个文件的所有者权限。
SUID的目的就是:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。
我们打开/usr/bin/passwd 目录位置来查看这个文件的权限

1 2 3 4 5 |
-rwsr-xr-x 1 root root 27856 Aug 9 09:39 passwd 看见这个所有者里多出个s了没 这个就是SUID 4 如果在所属组那里有s 那就是SGID 2 而如果other里出现 那就是SBIT 1 |
那么passwd文件的总体权限就是 4755 这回知道权限第一位数字代表啥了吧,因为我们默认都不会去加这个suid 权限,默认基本都为0 例如:chmod 0755 [文件]这种
这suid的执行原理就是,当普通用户执行这个文件的时候,他的身份会变成这个文件的所有者权限。比如普通用户执行paswd修改密码,在执行的瞬间(程序运行当中)身份会升级成root,而root是有权限更改shadow密码文件的。要不普通用户怎么更改密码呢。
[SGID]
1 2 3 4 5 |
什么是SGID? 如果普通用户执行某个SGID的文件,那么执行的过程中,他的身份会变成这个文件的所属组。 举例子: touch命令是没有SGID权限的,平常普通用户用他创建文件,所属的权限就是当前普通用户和当前用户所属组, 假如给touch命令赋予SGID权限,那么当普通用户用来创建文件的时候,这个文件的所属权限就是root,所属用户组也是root |
[SBIT]
1 2 3 4 5 6 |
什么是SBIT? #注:SBIT对文件不起作用 这个就是针对others来设置的了,和上面两个一样,只是功能不同而已。 SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。 最具有代表的就是/tmp目录,任何人都可以在/tmp内增加、修改文件(因为权限全是rwx),但仅有该文件/目录建立者与 root能够删除自己的目录或文件。 |
[命令]
1 2 3 4 5 6 7 8 9 10 11 12 |
赋予SUID权限 chmod u+s [文件] #赋予文件suid权限 chmod g+s [文件] #赋予文件sgid权限 chmod o+t [文件] #赋予文件sbit权限 这个SUID只能赋权给可执行文件(x) #我们应该对系统中默认就有的SUID文件做一个统计,然后定时检查是否有新的SUID文件出现。 [-perm 根据权限查找] find / -perm 根据权限查找 #查出文件有SUID权限的文件 find / -perm -4000 |
- 本文固定链接: https://www.yoyoask.com/?p=237
- 转载请注明: shooter 于 SHOOTER 发表