Re: [問題] 使用者與群組
※ 引述《Xphenomenon (啦 )》之銘言:
: ※ [本文轉錄自 Linux 看板]
: 作者: Xphenomenon (啦 ) 看板: Linux
: 標題: [問題] 使用者與群組
: 時間: Thu Sep 4 19:58:42 2008
: 請問一下 UID 與 EUID, GID 與 EGID 有什麼差別嗎?
: 不是很了解, 麻煩為我解答一下, 謝謝 :>
所謂的 EUID 與 EGID 是 effective user/group ID。
這東西就是指 process 在跑的時候,是用什麼身份在跑。
通常 EUID/EGID 會與現在的 UID/GID 相同,
但是當執行檔有SUID/SGID(set-user-ID, set-group-ID)屬性時,
則這個 process 在執行時,EUID/EGID 會變成檔案 owner 的 ID。
舉個最常見的例子,passwd 這隻程式因為要存取 /etc/passwd 或 /etc/shadow,
所以這個檔案在執行時必須要有 root 權限才能寫入,
但是你一定會很納悶,那為什麼我用一般 user 登入,
一樣可以用 passwd 來改自己的密碼呢?
答案就在於 passwd 有 SUID,
所以 passwd 在執行時,其 UID (或稱 real user ID) 即使是一般 user,
但是 EUID 其實是 root,這樣才能對 /etc/passwd 之類的檔案有存取權。
SGID 也是一樣的道理,因為早期系統沒有 mkdir system call,
為了使用只有 root 才能呼叫的 mknod 來產生目錄,就要利用到 SGID。
但是現代一些 UNIX-Like 的 implement 對 SGID 的繼承方式其實是有微妙的差異的。
如 BSD 與 Linux 在某些系統呼叫上對這個 bit 的處理都不太一樣。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.194.164.169
推
09/06 19:14, , 1F
09/06 19:14, 1F
討論串 (同標題文章)
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章