suid :
一般文件或目录的属主权限为rwx,表示可读可写可执行。而有些文件却有这样的权限4755 (rwsrwxrwx),这里的4和s代表的就是我们的suid,如果一个文件或目录被加上了suid权限,就相当于我们给予了任何人都可以以其所属主的权限来对其进行进行操作,当是目录时,我们在其内建立的文件的所属主都是目录的所属主。其中系统中的/etc/passwd就是一个加了suid的文件,这就是为什么人人都能调用passwd为自己添加密码的原因。
suid权限的添加
chmod 4755 filename (755权限是我们假设的)
chmod u+s filename
当文件或目录原属主权限没有x时,更改后会是一个S,否则为s
sgid :
sgid 与suid 类似,它是用于组的执行权限上的另一种权限,(rwxrwsrwx)被加上sgid的文件,用户可以用文件属组的权限来运行它。被加上sgid的目录用户可以在其内创建文件和目录所属组都是原目录的所属组。而且任何有权限进入的用户都可以以组的权限修改删除目录内的文件和目录。
sgid权限的添加
chmod 2755 filename (755权限是我们假设的)
chmod g+s filename
当文件或目录原属组权限没有x时,更改后会是一个S,否则为s
sticky:
sticky 权限就是在other用户组的写权限上添加了另一个权限t,(rwxrwxrwt)
chmod 1755 filename (755权限是我们假设的)
chmod o+t filename
当文件或目录原other组权限没有x时,更改后会是一个T,否则为t
一个典型的例题:
我们用于演示sticky与sgid一起使用,建立一个公共的目录,要求大家都可以去里面创建,修改和删除自己的文件或目录,但是不能对他人建立的文件和目录操作。
首先我们建立一个组为mygrp,再在非用户家目录(不包括/root)下建立一个目录如/test
我们将目录test的所属组更改为mytest
chmod :mygrp /abc
创建两个用户user1,user2,并指定它们的附加组为mygrp (使它们可以使用组权限)
useradd -G user1 useradd -G user1
然后我们为/abc添加所属组的写权限,chmod g+w /abc
使用user1 和user2 进入到/test中建立文件,我们可以看到建立的文件属组都是mygrp,
我们可以用user1删除user2的文件,这是因为mytest的权限的原因,
我们现在为目录加上sticky权限
此时再用user1删除user2的文件时则显示权限不足
则达到了我们的实验要求





















