Re: [問題] 使用者與群組

看板LinuxDev作者 (I'm a n00b)時間16年前 (2008/09/06 00:08), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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
多謝!受教了! :D
09/06 19:14, 1F
文章代碼(AID): #18mLbz5Y (LinuxDev)
討論串 (同標題文章)
文章代碼(AID): #18mLbz5Y (LinuxDev)