隨記:關於linux setUID

setuid的優點:
1、 使用SetUID可以靈活的調整所有文件所有者權限
例如:
如果我們以普通用戶
[root@localhost ~]# su xiweina
進入執行新建文件
[xiweina@localhost root]$ touch file
則出現
touch: 無法觸碰 “fil“權限不夠
而當我們執行查找touch所在的目錄
[root@localhost ~]# ls -l `which touch`
-rwxr-xr-x 1 root root 42284 2009-07-13 /bin/touch
設置uid
[root@localhost ~]# chmod u+s /bin/touch
查看效果
[root@localhost ~]# ls -l `which touch`
顯示s將x替換,現在的s即代表x也代表s有兩者功能
-rwsr-xr-x 1 root root 42284 2009-07-13 /bin/touch
此時就可以建立了
[xiweina@localhost /]$ touch file
查詢效果
[xiweina@localhost /]$ ls -l file
顯示效果爲
-rw-rw-r-- 1 root xiweina 0 12-15 19:05 file

通過上面我們可以再詮釋下SetUID的定義,
當一個可執行文件(命令touch)設置SetUID權限後,當普通用戶xiweina執行touch創建新文件時,實際上是以touch命令所有者root的身份在執行此操作,既然是以root身份執行,當然新建文件的所有者爲root ,這就是SetUID的作用

setuid的缺點:
1 、爲系統的安全性帶來了隱患,如果Root用戶爲指定的程序文件配置過大的SetUID權限,那麼就會爲***或者非法用戶打開了侵入系統的大門。
2、如果vi編輯器被設置了u+s,就更危險了,普通用戶可以使用vi編輯/etc/shadow文件,因爲具備root身份,可以進行任意讀寫操作(比如可以把任何一個用戶密碼位清空,則用戶登錄不需要輸入密碼)。但是使用more、cat等命令仍然無法查看文件/etc/shadow的內容,只有被授予了SetUID的vi可以查看和修改。同樣,vi如果具有了SetUID權限,普通用戶可以vi編輯/etc/passwd文件把自己的UID改爲0 ,則他的權限就和root一樣;可以vi編輯/etc/inittab文件把缺省運行級別改成6 ,則Linux會開機後不停的重啓…,更可惡的是可以vi編輯/etc/inittab文件把缺省運行級別改成1,這時不太懂得人會以爲機子壞了。
如果kill被授予setid權限,當普通用戶執行kill時,因爲kill被授予了SetUID權限,在執行的一瞬間具有了root權限,只要用戶不爽想關閉任何服務都可以!

原文出自http://blog.csdn.net/xi_weina/article/details/7075248

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