linux下的suid與guid許可權介紹

以前一直好奇,在Linux許可權中為什麼有的時候會出現四位?比如0777,後來查閱資料才明白,原來前面的0代表suid和guid的許可權。
suid和guid簡介:
suid意味著如果某個使用者對屬於自己的shell指令碼設定了這種許可權,那麼其他使用者在執行這一指令碼時也會具有其屬主的相應許可權。
guid則表示執行相應指令碼的使用者將具有該檔案所屬使用者組中使用者的許可權。
簡單的舉一個例子,當一個程式設定了suid的時候,如果一個本身沒有許可權訪問/etc/passwd的使用者執行了這個程式,則會獲得此程式的所有者的許可權,而如果此程式的所有者對/etc/passwd檔案有訪問許可權,則執行此程式的所有使用者都可以訪問此檔案。
是不是不大明白呀,下面再舉個例子:

-rwxr-xr-x   1 root  root    12 09-02 15:21 my_test.sh

上面的my_test.sh檔案許可權是所屬使用者(root)是7,如果設定了suid,那麼其他任何使用者的許可權都是7,如果設定了guid,那麼任何使用者的許可權都是5。
設定suid和guid:
設定suid就是把0變為4,設定guid就把0變為2,如果都設定那就是6了
chmod 4777 my_test.sh                 #只設定suid
chmod 2777 my_test.sh                 #只設定guid
chmod 6777 my_test.sh                 #同時設定suid和guid

Leave a Reply

Your email address will not be published. Required fields are marked *

Captcha Code