RHCE 學習札記

A. SUID, SGID, SBIT權限的活學活用方式:

   SUID 添加命令: chmod 4***,   chmod u+s

   SUID 刪除命令: chmod 0***,   chmod u-s

   SGID添加命令:  chmod 2***,   chmod g+s

   SGID刪除命令:  chmod 0***,   chmod g-s

   SBIT添加命令:   chmod 1***,   chmod o+t

   SBIT刪除命令:   chmod 0***,   chmod o-t




 SetUID的功能:

    1.    只有可執行的二進制程序或者shell程序才能設定SUID權限

    2.    命令執行者要對該程序(命令)擁有x(執行)權限

    3.    命令執行者在執行該程序時獲得該程序文件owner的身份(在執行程序的過程中靈魂附體爲文件的owner)

    4.    SetUID權限只在該程序執行過程中有效,也就是說身份改變只在程序執行過程中有效

         以passwd命令舉例

            ls –l /usr/bin/passwd #passwd命令,不是/etc/passwd配置文件

            bl@ubuntumma:~$ ls -l /usr/bin/passwd

            -rwsr-xr-x 1 root root 47032 Jul 16  2015 /usr/bin/passwd

 
            bl@ubuntumma:~$ ls -l /etc/shadow

            -rw-r----- 1 root shadow 1292 Aug 25 16:56 /etc/shadow

               以上可以看出,

            (1)passwd命令的權限中,有s。

            (2)shadow文件的權限普通用戶沒有w權限,root用戶有w權限

            (3)因爲passwd命令有s(即設置了suid功能),那麼bl用戶在執行passwd命令時,就會暫時獲得命令owner(root)的權限,而root對shadow文件有w權限,所以,普通用戶bl此時也有了w權限,在執行passwd時是可以修改密碼的(即修改shadow文件)。

 
            設定SUID

            4代表SUID


                    chmod 4764

                    chmod u+s

                    bl@ubuntumma:~$ ls -l test

                    -rwxrw-r-- 1 bl bl 0 Aug 26 12:43 test

                    bl@ubuntumma:~$ chmod 4764 test

                    bl@ubuntumma:~$ ls -l test

                    -rwsrw-r-- 1 bl bl 0 Aug 26 12:43 test

            刪除SUID,直接設置權限即可

            bl@ubuntumma:~$ chmod 664 test chmod u-s

            bl@ubuntumma:~$ ls -l test

            -rw-rw-r-- 1 bl bl 0 Aug 26 12:43 test

            這時,再次設置SUID會出現什麼情況呢

            bl@ubuntumma:~$ chmod u+s test

            bl@ubuntumma:~$ ls -l test

            -rwSrw-r-- 1 bl bl 0 Aug 26 12:43 test

            S變成大寫了,這說明SUID設置出錯,因爲644權限裏的owner本身就沒有x權限,所以無法設置SUID
            出現大寫S表示設置SUID權限不成功,因爲文件所有者都沒執行權限[x], 這在linux中時不允許的。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章