PID:進程號。
核心為每個進程分配一個唯一的ID編號,許多操作進程的命令和系統調用需要制定一個PID,以識別操作的對象,PID按照進程建立的順序產生。
PPID:父進程號
Linux並不支援建立一個新進程以執行特定程式的系統調用。新的進程總是通過複製一個進程自身來產生,複製出的進程可以把現在啟動並執行程式替換為另外一個。
當一個進程被複製的時候,原始的進程成為父進程,拷貝的進程作為其的子進程。進程的PPID屬性就儲存了了其父進程的PID。如果原來的父進程終止,那麼進程init(進程1)成為該子進程的父進程。
UID、EUID:真是使用者ID(real User ID),有效使用者ID(Effective User ID)
UID描述了該進程是由哪個使用者建立的,更精確的說來,他是父進程UID值的拷貝。通常來說,只有進程的建立者(也稱為屬主)和超級使用者才擁有操作進程的許可權。
EUID是一個額外的UID,用於描述一個進程在任何給定時刻對哪些資源和檔案具有存取權限。
對大部分進程來說,UID和EUID是相同的,例外的情況可以考慮setuid。
儲存UID和EUID在維護身份(identity)和許可權(permission)的時候是有用的,並且考慮到一個setuid的程式並不一定希望一直以一種擴充的許可權來進行操作。進程的EUID可以被設定,也可以被重設,以允許或者限制進程所擁有的額外的許可權。
Linux同時儲存一種"saved UID",暫且稱為儲存UID,SUID在進程首次開始執行的時候被賦予和EUID一樣的值。除非進程採取某些措施擦除了這個儲存的UID,否則它可以一直被當做UID或者EUID一樣來使用。因此,一個謹慎構造的setuid程式可以在程式執行的大部分時間與其所持有的特權無關,僅僅在需要的時候才訪問這些特權。
FSUID
linux同時定義了非標準的FSUID進程參數,用以控制對檔案系統許可權的判斷,不過這個在核心之外好像並不常用。
GID、EGID:真實和有效組ID
GID是進程的組標識號。EGID和GID的關係跟EUID和UID的關係相同,因為它可以由一個setuid程式來切換。類似 saved UID,核心也同時維護一個saved GID。
GID的用途不是特別大了,從存取控制的角度上來說,一個進程可以同時是好幾個組的成員。決定存取權限一般要考慮EGID和追加的組清單,但不考慮GID。
只有當一個進程要建立新檔案的時候,GID才會起作用。檔案系統許可權是如何設定的,決定了新的檔案可能要採用建立該檔案的進程的GID。