2007年10月31日 星期三

如何setuid

使用passwd來改變密碼很平常的事,但是passwd是

-r-sr-xr-x 2 root wheel 5.7K 10 27 14:42 /usr/bin/passwd*

假設我們的使用者為clockwork執行此程式沒有問題算是other group的,所以一執行下去此行程會有UID和EUID而如果是一般的行程會把UID和EUID設成clockwork表示只有clockwork可以對此行程做任何事,而對clockwork為所有人的資源做任何事

那為什麼要setuid呢?因為我們的clockwork沒有辦法改變master.passwd這檔案阿

-rw------- 1 root wheel 1.6K 10 29 20:19 master.passwd

上面清楚的寫到,只有root才可以動這個檔案,所以setuid主要就是把EUID設為root而本來的UID還是一樣是clockwork,這樣我們就可以去存取master.passwd資源了,而此時執行passwd這程式的行程它的UID為clockwork而EUID為root。

沒有留言: