2.Set GID:
- 档案:如果 SGID 是设定在 binary file 上面,则不论使用者是谁,在执行该程式的时候, 他的有效群组 (effective group) 将会变成该程式的群组所有人 (group id)。
- 目录:如果 SGID 是设定在 A 目录上面,则在该 A 目录内所建立的档案或目录的 group ,将会是 此 A 目录的 group .
3.Sticky Bit: 目前只针对目录有效,对于档案已经没有效果了。 SBit 对于目录的作用是:‘在具有 SBit 的目录下,使用者若在该目录下具有 w 及 x 的权限, 则当使用者在该目录下建立档案或目录时,只有档案拥有者与 root 才有权力删除’。换句话说:当甲这个使用者于 A 目录下是拥有 group 或者是 other 的项目,并且拥有 w 的权限, 这表示‘甲使用者对该目录内任何人建立的目录或档案均可进行 "删除/更名/搬移" 等动作。’ 不过,如果将 A 目录加上了 Sticky bit 的权限项目时, 则甲只能够针对自己建立的档案或目录进行删除/更名/移动等动作
4.SUID/SGID/SBIT 权限设定: 如何开启档案使成为具有 SUID 与 SGID 的权限呢?! 这就需要刚刚的数字更改权限的方法了!现在你应该已经知道数字型态个更改权限方式为‘三个数字’的组合, 那么如果在这三个数字之前再加上一个数字的话,那最前的面数字就代表这几个属性了! ( 注:通常我们使用 chmod xyz filename 的方式来设定 filename 的属性时,则是假设没有 SUID, SGID 及 Sticky bit 啦! )
- 4 为 SUID
- 2 为 SGID
- 1 为 Sticky bit
[root@linux ~]# cd /tmp
[root@linux tmp]# touch test
[root@linux tmp]# chmod 4755 test; ls -l test
-rwsr-xr-x 1 root root 0 Jul 20 11:27 test
[root@linux tmp]# chmod 6755 test; ls -l test
-rwsr-sr-x 1 root root 0 Jul 20 11:27 test
[root@linux tmp]# chmod 1755 test; ls -l test
-rwxr-xr-t 1 root root 0 Jul 20 11:27 test
[root@linux tmp]# chmod 7666 test; ls -l test
-rwSrwSrwT 1 root root 0 Jul 20 11:27 test
# 这个例子就要特别小心啦!怎么会出现大写的 S 与 T 呢?不都是小写的吗?
# 因为 s 与 t 都是取代 x 这个参数的,但是你有没有发现阿,我们是下达
# 7666 喔!也就是说, user, group 以及 others 都没有 x 这个可执行的标志
# ( 因为 666 嘛! ),所以,这个 S, T 代表的就是‘空的’啦!怎么说?
# SUID 是表示‘该档案在执行的时候,具有档案拥有者的权限’,但是档案
# 拥有者都无法执行了,哪里来的权限给其他人使用?当然就是空的