文件和目录权限
 
文件和目录的权限除了 r w x 、权限外 还有 s t 特殊权限。
  s 表示 setUID setGID 。位于 user group 权限组的第三位置。如果在 user 权限组中设置了 s 权限。那么当该文件被执行时,时以文件所有者的 GID, 而不是用户的 GID 执行文件。 t 表示站着位( sticky )。位于 other 权限组的第三位,具有该位的文件和目录只有创建该文件的 user 才能删除。
 
chmod g+s  directory
chmod o+t   directory
 
实验演示:
1 建立组 group ,建立用户 liv natasha 其所属组为 dba 建立一个目录 /dir
  liv natasha 加入 dba
#useradd  liv
#useradd   Natasha
 #usermod –G dba liv  --- dba 添加为 liv natasha 的附加组
 #usermod –G dba natasha
 #mkdir dir
 
2 更改 dir 目录的组为 dba 设置组权限为可读可写可执行
 #chown :dir dba
 #chmod g+w dir
 
drwxrwxr-x   2 root dba   4096 Feb 21 21:13 dir
 
3 使用 natasha 用户登录 创建文件 查看文件属性
#su – Natasha
$cd /dir
 $touch natasha.1
$ls  ---- 查看 /dir 目录下的文件所属组 natasha 所属组
 
-rw-rw-r-- 1 natasha natasha 0 Feb 21 21:11 natasha.1
 
$su –
 
#chmod g+s /dir
 
drwxrwsr-x   2 root dba   4096 Feb 21 21:13 dir
4 s 权限设置好,切换到 natasha 用户再建文件 natasha.2
  切换到 liv liv.1
如下显示
-rw-rw-r-- 1 natasha natasha 0 Feb 21 21:11 natasha.1
-rw-rw-r-- 1 natasha dba     0 Feb 21 21:24 natasha.2
-rw-rw-r-- 1 liv     dba     0 Feb 21 21:30 liv.1
 
-- 则所建文件执行所属组为 该目录的所属组
 
5 现在 natasha 尝试删除 natasha.2 liv.1
  发现 natasha 任何人创建的文件都能删除,现在我们想让 dba 组内的每个用户只能删除自己创建的文件,不能删除其他人的文件。
我们就运用了令一个权限 t
 # chmod o+t /dir
 
drwxrwsr-t   2 root dba   4096 Feb 21 21:33 dir
 
liv natasha 分别创建文件
liv 尝试删除 natasha 和自己创建的文件,结果显示
可以删除自己的,删除 natasha 的文件则系统提示:操作不允许
 
rm: cannot remove `natasha.3': Operation not permitted