在linux中,使用者id(User ID,簡稱UID)是指使用者識別符,與使用者名稱唯一對應;在類別UNIX系統中它是核心用來辨識使用者的無符號整數數值,亦是UNIX檔案系統與進程的必要組成部分之一。使用者的UID大於500的都是非系統帳號,500以下的都為系統保留的帳號,例如root帳號,至高權限的帳號的UID為0;建立使用者的時候預設的帳號的UID都是大於500。
本教學操作環境:linux7.3系統、Dell G3電腦。
登陸 Linux 系統時,雖然輸入的是自己的使用者名稱和密碼,但其實 Linux 並不認識你的使用者名稱,它只認識使用者名稱對應的 ID 號碼(也就是一串數字)。 Linux 系統將所有使用者的名稱與 ID 的對應關係都儲存在 /etc/passwd 檔案中。
Linux 系統中,每個使用者的ID 細分為2 種,分別是使用者ID(User ID,簡稱UID)和群組ID(Group ID,簡稱GID),這與檔案有擁有者和擁有群組兩種屬性相對應。下面就來帶大家來了解一下用戶ID(UID)。
linux 使用者ID(UID)
#使用者ID(英文:user identifier,一般縮寫為User ID或UID),全名為使用者標識符,在類UNIX系統中是核心用來辨識用戶的一個無符號整數數值,也是UNIX檔案系統與流程的必要組成部分之一。
UID---使用者識別號,它與使用者名稱唯一對應。 LINUX中超級使用者root的UID為0。如果您想要讓系統顯示您的用戶名,UID,群組名,GID以及您所屬的其他群組的名稱,可利用id指令。修改UID一般用 usermod -u
。
UID是系統中用來表示使用者的標識符,啟動的進程的uid就是目前登入使用者的uid,查看使用者uid可使用id -u <username>
命令
要注意的是,權限檢查的時候是對euid檢查,通常情況下進程的euid是和uid相同的。
用戶的UID大於500的都是非系統帳號,500以下的都為系統保留的帳號,例如root帳號,至高權限的帳號的UID為0,我們建立使用者的時候預設的帳號的UID都是大於500,如果你要指定帳號的UID可以使用-u
這個參數來指定。其它沒什麼大的意義。
數值範圍
#在不同的系統中,UID的值的範圍也有所不同,但一般來說UID都是由一個15位的整數表示,其範圍在0~32767之內,且有以下限制:
超級用戶的UID總為0;
依傳統的做法,「nobody」(類別UNIX系統的一種特殊帳戶)與超級用戶相反,總佔有數值最大的PID,即32767;相對應的,現今的系統為nobody分配的UID則在系統保留範圍(1~100)或是65530-65535的範圍內[1]。
數值於1~100內的UID約定預留給系統使用,有些手冊則建議在此基礎上再預留101~499(如RHEL)甚至是101~999 (如Debian)的UID以作備用;而相對應的,在Linux中用useradd指令建立第一個使用者時,預設為分配的UID則為1000。
除此之外,有些特殊的系統也支援16位元的UID,因而UID的數目可以擴展到65536個;現代系統支援32位元的UID,這也使UID數目進一步擴充到4,294,967,296個成為可能。
UID分類
#有效用戶ID
有效用戶ID (Effective UID,即EUID)與有效使用者群組ID(Effective Group ID,即EGID)在建立與存取檔案的時候發揮作用;具體來說,在建立檔案時,系統核心將根據建立檔案的進程的EUID與EGID設定檔案的擁有者/群組屬性,而在存取檔案時,核心也根據存取進程的EUID與EGID決定其能否存取檔案。
真實使用者ID
真實使用者ID(Real UID,即RUID)與真實使用者群組ID(Real GID,即RGID)用於辨識進程的真正擁有者,且會影響到進程發送訊號的權限。沒有超級用戶權限的進程僅在其RUID與目標進程的RUID相匹配時才能向目標進程發送信號,例如在父子進程間,子進程從父進程處繼承了認證信息,使得父子進程間可以互相發送信號。
暫存使用者ID
#暫存使用者ID(Saved UID,即SUID)於以提升權限運行的程序暫時需要做一些不需特權的操作時使用,這種情況下進程會暫時將自己的有效用戶ID從特權用戶(常為root)對應的UID變成某個非特權使用者對應的UID,而後將原有的特權使用者UID複製為SUID暫存;之後當行程完成不需特權的操作後,行程使用SUID的值重置EUID以重新獲得特權。這裡要說明的是,無特權程序的EUID值只能設為與RUID、SUID與EUID(也即不改變)之一相同的值。
檔案系統使用者ID
檔案系統使用者ID(File System UID,即FSUID)在Linux中使用,且只用於對檔案系統的存取權控制,在沒有明確設定的情況下與EUID相同(若FSUID為root的UID,則SUID、RUID與EUID必至少有一亦為root的UID),且EUID改變也會影響到FSUID 。設立FSUID是為了允許程式(如NFS伺服器)在不需取得向給定UID帳戶發送訊號的情況下以給定UID的權限來限定自己的檔案系統權限。
雜項
#UID的數值與使用者帳戶的對應關係存放於/etc/passwd。用於存放密碼的/etc/shadow以及網路資訊服務也以UID的數值標識用戶,但現在Linux系統下的shadow檔案已經改用帳戶名稱來識別用戶。
在遵循POSIX的環境中,id這項指令可以給出目前使用者的使用者名稱、所屬群組及對應的UID、GID的值。
相關推薦:《Linux影片教學》
以上是linux 用戶id是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!