getid()
函數在 Linux 中用于獲取當前進程的有效用戶 ID(EUID)和有效組 ID(EGID)。這個函數返回的是當前進程所擁有的實際身份,而不是它嘗試或聲稱的身份。
關于你的問題,“Linux Getid能識別所有ID嗎”,這取決于你如何定義“識別所有ID”。
getid()
返回的是當前進程的有效ID。有效ID是進程在文件系統中以特定用戶或組身份執行時使用的ID。然而,一個進程可能擁有多個實際的ID(例如,通過 setuid()
、setgid()
等函數更改),但只有一個有效的ID。getid()
返回的ID可以是用戶ID或組ID。在Linux中,每個進程都有一個與之關聯的用戶ID和一個與之關聯的組ID。這些ID用于確定進程可以訪問哪些文件和目錄。getid()
函數并不能識別所有這些ID。getid()
只返回當前進程的有效ID。要獲取進程的所有ID,你可能需要查閱 /proc/[pid]/uid_map
和 /proc/[pid]/gid_map
文件,這些文件包含了進程的ID映射信息。總之,getid()
函數返回的是當前進程的有效用戶ID和有效組ID,而不是它可能擁有的所有ID。要獲取更全面的ID信息,你可能需要查看 /proc
文件系統中的其他文件。