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