一,SUID
1、SUID权限仅仅对二进制可执行文件有效
2、执行者对于该文件具有X的可执行权限
3、本权限仅仅在执行该程序的过程中有效
4、执行者将拥有该程序的拥有者的权限
原本只有root用户可以修改/etc/shadow文件(修改密码),passwd文件有了SUID权限,所以可以修改自己的密码。
设定SUID的方法:chmod 4755 文件名
chmod u+s 文件名
二,SGID
1、对可执行二进制程序有效
2、程序执行者对于程序必须要有X权限
3、SGID主要作用于目录
设定SGID的方法:chmod 2755 文件名
chmod g+s 文件名
三,SBIT
1、只对目录有效
2、普通用户对目录拥有w和x权限
3、当用户在目录下创建文件或者目录时,仅仅有自己和root有权限删除
设定SBIT的方法:chmod 1755 目录名
chmod o+t 目录名
四,chattr命令,修改文件属性
chattr [+-=][选项] 文件名或者目录
+:增加权限
-:删除权限
=:赋予权限
选项:i:如果对文件添加i属性,则不允许修改文件(改名,删除,修改数据,添加数据等)
如果对目录添加i属性,则只能修改目录下文件的数据,但不能删除或者创建文件。
a:如果对文件添加a属性,则只能对文件追加数据,无法修改和删除(vi命令属于修改,无法使用,只能”>>“追加)
如果对目录添加a属性,则只允许建立和修改文件,不允许删除文件。
五,sudo命令
root把本来只有超级用户可以使用的权限赋给其他普通用户执行,相当于只有root可以执行命令,但是root一个忙不过来,执行命令的权限赋给他人,让他人帮忙执行命令。
修改配置文件/etc/sudoers,添加一行图中所示,表示user用户在本台主机上执行vim命令,相当于root在执行vim命令。
在普通用户使用sudo命令赋予的命令时,必须在命令前加sudo。
总结:SUID:当普通用户执行拥有SUID权限的可执行文件时,会把普通用户变成文件的拥有者的身份,一般是root,执行完后再变回普通用户,相当于执行程序期间普通用户会变成超级用户。
SGID:当用户组执行程序时,会把执行程序的所属组变成该文件的所属组,一般为root。当普通用户组在有SGID权限的目录下创建文件或目录时,新建的文件默认属组为目录的属组。相当于普通用户新建的文件,属主是用户本身,属组可能是root。
SBIT:当普通用户在拥有SBIT权限的目录下创建文件或者目录时,只有这个用户本身或者root用户可以删除,其他用户无权限。