SUID
在二进制文件上面设置的以文件所有者身份执行的权限】
只有可以执行的二进制程序才能设定SUID权限;
命令执行者要对该程序拥有x(执行)权限;²
命令执行者在执行该程序时获得该程序文件属主的身份;
²SetUID 权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效。
SGID
[root@localhost ~]# chmod u+s /usr/bin/vim
[root@localhost ~]# ll /usr/bin/vim
-rwsr-xr-x 1 root root 1847752 4 月 5 2012 /usr/bin/vim
设置后普通用户可使用vim编辑器修改/etc/passwd文件的内容,非常危险,所以一定要慎重,建议关键目录应严格控制写权限,比如“/”、“/usr”等;用户的密码设置要严格遵守密码三原则;对系统中默认应该具有 SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限。
chmod g+s 用户名 组名
用户在当前目录下创建的文件的属组自动与该目录的数组同步。
SGID 即可以针对文件生效,也可以针对目录生效,这和 SUID 明显不同。如果针对文件,SGID 的含义如下:
²• 只有可执行的二进制程序才能设置 SGID 权限;
²• 命令执行者要对该程序拥有 x(执行)权限;
²• 命令执行在执行程序的时候,组身份升级为该程序文件的属组;
• SetGID权限同样只在该程序执行过程中有效,也就是组身份改变只在程序执行过程中有效。
SBIT
Sticky BIT 粘滞位,也简称为 SBIT,SBIT目前仅针对目录有效,它的作用如下:
• 粘着位目前只对目录有效;
• 普通用户对该目录拥有 w 和 x 权限,即普通用户可以在此目录拥有写入权限;
• 如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一但赋予了粘着位,除了root 可以删除所有文件,普通用户就算拥有 w 权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。
chmod o+t files
chmdo o-t files
4.4 设定文件特殊权限
特殊权限这样来表示:
4 代表 SUID
2 代表 SGID
1 代表 SBIT
[root@localhost ~]# chmod 4755 files 赋予 SUID 权限
[root@localhost ~]# chmod 2755 files 赋予 SGID 权限
[root@localhost ~]# mkdir test
[root@localhost ~]# chmod 1755 test 赋予SBIT权限(SBIT只对目录有效)
文件拓展
chattr
命令功能:设置文件系统属性权限
命令格式:[root@localhost ~]# chattr [+-=] [选项] 文件或目录名
常用选项:
+: 增加权限
-: 删除权限
=: 等于某权限
i: 如果对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置 i 属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
a: 如果对文件设置 a 属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除。
e: Linux 中绝大多数的文件都默认拥有 e 属性。表示该文件是使用 ext 文件系统进行存储的,而且不能使用“chattr -e”命令取消 e 属性。
查看添加的拓展权限要用命令lsattr,不能用ls
chattr +a 1/
chattr -a 1/