時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
Linux為每個進程設置了3個ID:實際用戶id,有效和用戶id和保存的設置id
關于這3個id,需要注意以下幾個方面:
1.只有root才能改變進程的實際用戶id。例如,用戶從終端login程序登陸,此時login程序的3個id都是root。然后正確輸入用戶名密碼之后,login程序于是setuid到注冊的id。于是3個id都被改成了注冊的用戶id。然后exec shell程序。非root用戶注冊進入shell之后,他的實際用戶id是絕對不會被更改的。除非logout之后,重新注冊shell。一些su改變用戶的操作實際上都是改變shell進程的有效用戶id,并不是shell進程的實際用戶id。
2.exec程序時,可執(zhí)行文件有一個設置id位,該位的設置與否與進程的有效用戶id和保存的設置id有很大關系??梢杂胠l命令查看,如果有s標記的話說明設置了,否則沒有。首先沒有設置的情況,3個id均不會改變和調(diào)用者的進程的id一樣?,F(xiàn)在是設置了的情況,實際用戶id仍然不會改變,有效用戶id則設置為可執(zhí)行文件的屬主用戶,保存的設置id設置成有效用戶id一樣。這樣的程序有很多,比如passwd,su等。例如,passwd程序,一個普通用戶foo通過shell執(zhí)行passwd,首先shell進程fork產(chǎn)生一個子進程,然后子進程exec passwd程序。由于passwd設置了設置id位,并且passwd是屬于root用戶。于是子進程設置有效用戶id位為root,保存的設置用戶id也設置成了root。passwd執(zhí)行完畢時,再改變有效用戶id和保存的設置用戶id為以前的實際用戶id的值。
3.保存的設置-用戶- ID 是由exec從有效用戶I D復制的。在exec按文件用戶I D設置了有效用戶I D后,即進行這種復制,并將此副本保存起來。
關鍵詞標簽:Linux系統(tǒng)進程
相關閱讀
熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶端配置 Linux操作系統(tǒng)修改IP
人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址 dmidecode命令查看內(nèi)存型號 linux tc實現(xiàn)ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關機、重啟、注銷 命令 查看linux服務器硬盤IO讀寫負載