天天看點

Linux學習日記 —— 8.2.2 權限管理-檔案特殊權限-SetGID

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 檔案名

繼續閱讀