1、 SetGID針對檔案的作用
- 隻有可執行的二進制程式才能設定SGID權限
- 指令執行者要對該程式擁有x(執行)權限
- 指令執行在執行程式的時候,組身份更新為該程式檔案的屬組
- SetGID權限同樣隻在該程式執行過程中有效,也就是說組身份改變隻在程式執行過程中有效
-
[[email protected] ~]# ll /usr/bin/locate
-rwx–s–x 1 root slocate 35612 8月 24 2010 /usr/bin/locate
-
[[email protected] ~]# ll /var/lib/mlocate/mlocate.db
-rw-r—– 1 root slocate 1838850 1月 20 04:29 /var/lib/mlocate/mlocate.db
- /usr/bin/locate是可執行二進制程式,可以賦予SGID
- 執行使用者lamp對/usr/bin/locate指令擁有執行權限
- 執行/usr/bin/locate指令時,組身份會更新為slocate組,而slocate組對/var/lib/mlocate/mlocate.db資料庫擁有r權限,是以普通使用者可以使用locate指令查詢mlocate.db資料庫
- 指令結束, lamp使用者的組身份傳回為lamp組
2、 SetGID針對目錄的作用
- 普通使用者必須對此目錄擁有r和x權限,才能進入此目錄
- 普通使用者在此目錄中的有效組會變成此目錄的屬組
- 若普通使用者對此目錄擁有w權限時,建立的檔案的預設屬組是這個目錄的屬組
[[email protected] ~]# cd /tmp/
[[email protected] tmp]# mkdir dtest
[[email protected] tmp]# chmod g+s dtest
[[email protected] tmp]# ll -d dtest/
[[email protected] tmp]# chmod 777 dtest/
[[email protected] tmp]# su – lamp
[[email protected] ~]$ cd /tmp/dtest/
[[email protected] dtest]$ touch abc
[[email protected] dtest]$ ll
3、設定SetGID
2代表SGID
chmod 2755 檔案名
chmod g+s 檔案名
4、取消SetGID
chmod 755 檔案名
chmod g-s 檔案名