Linux 中如何使用 id 命令,它是做什么用的呢?
在 Linux 中,id 命令用于顯示用戶的真實有效的用戶ID和組ID。
本文我們通過一些例子來介紹一下如何使用 id 命令。
Linux 中的 id 命令
如下為 id 命令的語法:
在實際命令中,如果沒有提供 username(即用戶名),那么該命令將會顯示當前登錄用戶的信息。
比如,下面例子為在 ubuntu 中顯示當前登錄用戶的信息:
在上面的輸出中,用戶 gliu 的 uid為1000,gid 為 1000,這是用戶 gliu 默認所屬的主要組。
除此之外,用戶 gliu 也是某些其他組的成員,這些組也顯示在輸出中。
以下是id命令的最常見選項:
選項 | 描述 |
-u | 打印有效的用戶ID |
-g | 打印有效的組ID |
-G | 打印用戶所屬的所有組的ID |
-n | 打印名稱(需與-u、-g 或 -G 組合) |
-r | 打印真實ID(需與-u、-g 或 -G 組合) |
“真實”與“有效”的用戶ID和組ID
這可能會讓你感到有些疑惑,什么是 “真實” 的用戶ID?什么是 “有效” 的用戶ID?
在系統(tǒng)中創(chuàng)建用戶時,會為其指定用戶名、用戶ID(uid)和默認的組,該默認組的ID就是該用戶的gid,這就是“真實”的用戶ID和組ID。
同時,在Linux中,進程可以通過其他用戶和組運行,所以還有第二組ID,即稱為“有效”的ID。
大多數(shù)時候,“真實”ID和“有效”ID是相同的。但是也有不同的時候,也就是使用有效ID的時候,比如普通用戶需要修改受保護的文件,最常見的場景就是使用 passwd 命令修改密碼。修改密碼其實是修改的 root 用戶所屬的 /etc/passwd 文件。
id 命令的一些例子
接下來我們介紹一些使用 id 命令的例子。
1,打印某個用戶的 uid 和gid
要打印用戶的 uid 和 gid,只需在 id 命令后指定用戶名即可:
可以列出 Linux 系統(tǒng)中所有的用戶,以獲取用戶名。關(guān)于如何列出所有用戶,我們后面會單獨介紹。
2,僅打印用戶的 UID
可以使用 -u 選項來打印用戶的 uid。如前所述,如果省略用戶名,它會顯示當前登錄用戶的信息。如下語法結(jié)構(gòu):
注意,這里只會顯示 uid,它是一個數(shù)值,而不是名稱:
3,僅打印用戶的 gid
可以使用選項 -g 來打印用戶的 gid。這里所說的 gid 是指用戶所屬的默認組的組ID,它是一個數(shù)值。
同樣,它只會顯示組的數(shù)字ID,看下面的例子:
4,打印用戶所屬的所有其他組的ID
一個用戶可以屬于多個組,這是 Linux 文件系統(tǒng)的基本特性。你可以使用 usermod 命令并將其添加到 sudo 組以授予其 root 權(quán)限。
可以使用 -G 選項顯示用戶所屬的所有組的 ID:
同樣,這里也是只顯示ID,為數(shù)值:
5,打印用戶名稱(而不是數(shù)字ID)
數(shù)字ID可能會讓人弄混了,所以如果需要的話,可以使用 -n 選項,與 -u、-g 或者 -G 結(jié)合使用,來顯示用戶名。
比如,如果想要顯示用戶所屬的所有組,可以這樣使用:
我們使用先前的那個打印用戶所有組的例子,添加 -n 選項,它會顯示如下內(nèi)容:
打印真實的ID
以上所介紹的例子都顯示的是“有效”的ID,但是幾乎所有時候其也是“真實”的ID。但是,如果你想確保獲得“真實”的ID,可以使用 -r 選項,將其與 -u、-g 或者 -G 結(jié)合使用:
關(guān)于它的輸出,大家可以自行嘗試一下看看。
以上就是本次分享全部內(nèi)容,歡迎討論。