日常工作總結(進程的有效用戶和實際用戶)

Unix系統通過進程的有效用戶ID和有效用戶組ID來決定進程對系統資源的訪問權限。

在Unix進程中涉及多個用戶ID和用戶組ID,包括如下:

1、實際用戶ID和實際用戶組ID:標識我是誰。也就是登錄用戶的uid和gid,比如我的Linux以simon登錄,在Linux運行的所有的命令的實際用戶ID都是simon的uid,實際用戶組ID都是simon的gid(可以用id命令查看)。

2、 有效用戶ID和有效用戶組ID:進程用來決定我們對資源的訪問權限。一般情況下,有效用戶ID等於實際用戶ID,有效用戶組ID等於實際用戶組ID。當設 置-用戶-ID(SUID)位設置,則有效用戶ID等於文件的所有者的uid,而不是實際用戶ID;同樣,如果設置了設置-用戶組-ID(SGID)位, 則有效用戶組ID等於文件所有者的gid,而不是實際用戶組ID。

設置SUID:chmod u+s test:   rwsr-xr-x

以上這些概念還是比較的抽象,那麼下面寫一個小的測試程序:


 

這個程序非常簡單沒有什麼好說的。我們編譯這個程序生成test 程序

 

通 過id命令看到當前登錄用戶爲root,uid=0,gid=0。通過ls命令我們可以看出test程序沒有設置SUID和SGID,所有者是root, 所有組也是root。執行test我們發現有效用戶ID等於實際用戶ID(0),有效用戶組ID等於實際用戶組ID(0)。

 

你可能注意到test的所有者root,組也是root,和實際用戶,實際用戶組是一樣的。下一步我們修改一下test所有者和組,再看結果。


 

發現結果和上面一樣,test進程的有效用戶ID等於實際用戶ID(0),有效用戶組ID等於實際用戶組ID(0)。

 

下面我們給test程序設置SUID


 

發現設置test程序的SUID位之後,test進程的有效用戶ID等於文件所有者的UID(gkh的uid爲500),有效用戶組ID還是等於實際用戶組ID(0)。這樣程序就可以訪問只有gkh才能訪問的資源了。

 

發佈了46 篇原創文章 · 獲贊 5 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章