在 Linux 中,id 命令用于顯示用戶的真實有效的用戶ID和組ID。
本文我們通過一些例子來介紹一下如何使用 id 命令。
Linux 中的 id 命令
如下為 id 命令的語法:
id [options] [username]
在實際命令中,如果沒有提供 username(即用戶名),那么該命令將會顯示當前登錄用戶的信息。
比如,下面例子為在 ubuntu 中顯示當前登錄用戶的信息:
$ id
uid=1000(gliu) gid=1000(gliu) groups=1000(gliu),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),119(lpadmin),130(lxd),131(sambashare)
在上面的輸出中,用戶 gliu 的 uid為1000,gid 為 1000,這是用戶 gliu 默認所屬的主要組。
除此之外,用戶 gliu 也是某些其他組的成員,這些組也顯示在輸出中。
以下是id命令的最常見選項:
“真實”與“有效”的用戶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 命令后指定用戶名即可:
id
可以列出 Linux 系統(tǒng)中所有的用戶,以獲取用戶名。關于如何列出所有用戶,我們后面會單獨介紹。
2,僅打印用戶的 UID
可以使用 -u 選項來打印用戶的 uid。如前所述,如果省略用戶名,它會顯示當前登錄用戶的信息。如下語法結構:
id -u
注意,這里只會顯示 uid,它是一個數(shù)值,而不是名稱:
$ id -u
1000
3,僅打印用戶的 gid
可以使用選項 -g 來打印用戶的 gid。這里所說的 gid 是指用戶所屬的默認組的組ID,它是一個數(shù)值。
id -g
同樣,它只會顯示組的數(shù)字ID,看下面的例子:
$ id -g nobody
65534
4,打印用戶所屬的所有其他組的ID
一個用戶可以屬于多個組,這是 Linux 文件系統(tǒng)的基本特性。你可以使用 usermod 命令并將其添加到 sudo 組以授予其 root 權限。
可以使用 -G 選項顯示用戶所屬的所有組的 ID:
id -G
同樣,這里也是只顯示ID,為數(shù)值:
$ id -G gliu
1000 4 24 27 30 46 119 130 131
5,打印用戶名稱(而不是數(shù)字ID)
數(shù)字ID可能會讓人弄混了,所以如果需要的話,可以使用 -n 選項,與 -u、-g 或者 -G 結合使用,來顯示用戶名。
比如,如果想要顯示用戶所屬的所有組,可以這樣使用:
id -nG
我們使用先前的那個打印用戶所有組的例子,添加 -n 選項,它會顯示如下內容:
$ id -nG gliu
gliu adm cdrom sudo dip plugdev lpadmin lxd sambashare
打印真實的ID
以上所介紹的例子都顯示的是“有效”的ID,但是幾乎所有時候其也是“真實”的ID。但是,如果你想確保獲得“真實”的ID,可以使用 -r 選項,將其與 -u、-g 或者 -G 結合使用:
id -ru
關于它的輸出,大家可以自行嘗試一下看看。
審核編輯:劉清
-
Linux系統(tǒng)
+關注
關注
4文章
590瀏覽量
27318 -
Ubuntu
+關注
關注
5文章
559瀏覽量
29503
發(fā)布評論請先 登錄
相關推薦
評論