1.實際使用者id是登陸使用者的id。
有效使用者id在設定suid後,為檔案所有者id。
2.比如說,使用者修改密碼,是通過執行命令passwd來實現的。最終必須要修改/etc/passwd檔案。
/etc/passwd檔案的屬性是:
#ls -l /etc/shadow
----------. 1 root root 1039 nov 13 2015 /etc/shadow
/etc/shadow只對root使用者是可寫的,對其他使用者只有讀許可權。
普通使用者通過執行passwd命令修改/etc/passwd檔案時,
#ls -l /bin/passwd
-r-s--s--x 1 root root 16336 feb 14 2003 passwd
由於passwd命令設定了suid位,該程序的實際使用者為leaf(普通使用者),但是該程序的有效使用者id是檔案所有者root的id,因此通過passwd命令可以修改/etc/shadow檔案。
(對應檔案訪問標誌的s位就是通常說的suid位,另外可以看到所有使用者都有執行這個程式的權力。當leaf使用者執行passwd命令的時候。shell會fork出乙個子程序,此時程序的有效使用者id還是steve,然後exec程式/usr/bin/passwd。exec會根據/usr/bin/passwd的suid位會把程序的有效使用者id設成root, 此時這個程序都獲得了
root許可權, 得到了讀寫/etc/shadow檔案的許可權, 從而leaf使用者可完成密碼的修改。exec退出後會恢復steve使用者的euid為steve.這樣就不會使steve使用者一直擁有root許可權。)
有效使用者ID 實際使用者ID
實際使用者id,有效使用者id和設定使用者id 看unix相關的書時經常能遇到這幾個概念,但一直沒有好好去理清這幾個概念,以致對這幾個概念一直一知半解。今天好好區分了一下這幾個概念並總結如下。說白了這幾個uid引出都是為了系統的許可權管理。下面分別用ruid,euid,suid來表示實際使用者id,...
實際使用者ID,有效使用者ID和設定使用者ID
實際使用者id,有效使用者id和設定使用者id 看unix相關的書時經常能遇到這幾個概念,但一直沒有好好去理清這幾個概念,以致對這幾個概念一直一知半解。今天好好區分了一下這幾個概念並總結如下。說白了這幾個uid引出都是為了系統的許可權管理。下面分別用ruid,euid,suid來表示實際使用者id,...
實際使用者ID,有效使用者ID和設定使用者ID
摘自 實際使用者id,有效使用者id和設定使用者id 看unix相關的書時經常能遇到這幾個概念,但一直沒有好好去理清這幾個概念,以致對這幾個概念一直一知半解。今天好好區分了一下這幾個概念並總結如下。說白了這幾個uid引出都是為了系統的許可權管理。下面分別用ruid,euid,suid來表示實際使用者...