setuidsetgid位是让普通用户可以以root用户的角色运行只有ROOT帐号才能运行的程序或命令!

在LINUX中,有时执行某个命令时,需要对另一个文件进行操作,而这个文件又不是普通用户权限进行的操作:如,修改用户密码的命令passwd,实际上最终更改的是/etc/passwd文件,该文件的所有者和组都是ROOT,其它用户和同组用户只有查看的权限,只有ROOT权限的用户才能更改,但是普通用户也可以使用该命令更改自已的密码(更改密码实质就是修改了/etc/passwd文件)。

Linux特殊权限:setuid、setgid、粘贴位_粘贴位

Linux特殊权限:setuid、setgid、粘贴位_setuid_02

Linux特殊权限:setuid、setgid、粘贴位_setuid_03

setuid权限设置也是使用8进制数,用4000来表示;
setgid权限设置也是使用8进制数,用2000来表示;
如何同时设置setuid和setgid呢?可以用数字4+2来表示;Linux特殊权限:setuid、setgid、粘贴位_Linux特殊权限_04

粘贴位

如何才能使一个目录既可以让任何用户写入文件,又不让用户删除这个目录下他人的文件?
这就是粘贴位的作用,也是用8进制的1000表示,比如/tmp这个目录,默认就是带了粘贴位权限。

[root@mfsclient~]#ls-ld/tmp#粘贴位用t来表示
drwxrwxrwt5rootroot4096Oct2820:20/tmp

如果一个目录开放了所有权限777,并且设置了粘贴位权限,那么此目录只有属主和ROOT用户可以删除,其它任何用户都无法删除此目录。生产环境中很少用到!