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