如何在Linux中使用id命令
Linux中的ID命令用于显示用户的实际和有效的用户ID和组ID。
在本教程中,将介绍如何在Linux中使用ID命令,其中包含一些最常见和最有用的示例。
Linux中的ID命令
这是id命令的语法:
id [options] [username]
如果未提供用户名,则该命令将显示有关当前登录用户的详细信息。
id
这是Ubuntu Linux中为我显示的输出。
Hyman@theitroad:~$id uid=1000(igi) gid=1000(igi) groups=1000(igi),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),119(lpadmin),130(lxd),131(sambashare)
在上面的输出中,用户igi
具有UID 1000和GID 1000.这是用户igi
属于默认情况的主要组。
除此之外,用户igi
也是某些其他组的成员,这些组也已在输出中显示。
ID命令的示例
以下是ID命令最常见的选项:
|选项|描述|
| --- - | --- |
| -u |打印有效的用户ID |
| -g |打印有效的组ID |
| -g |打印所有组用户所属的IDS |
| -N |打印名称而不是ID(必须与-u,-g或者-g组合)|
| -r |打印真实ID而不是有效ID(必须与-u,-g或者-g组合)|
Real VS有效用户和组ID?
这可能对你令人困惑。
创建用户时,它给出了用户名,用户ID(UID),默认组和该默认组的ID是该用户的GID。
这是"真实"用户和组ID。
由于在Linux中,进程可以作为其他用户和组运行,还有一个称为有效ID的第二组ID。
大多数情况下真实有效的UID和GID都是一样的。
但是当常规用户必须修改特权文件时存在情况。
这是使用有效ID概念的位置。
最常见的例子是使用passwd命令更改修改root拥有的/etc/passwd文件的密码。
1.打印某个用户的UID和GID
要打印UID和GID以及用户的所有其他组ID,我们只需指定用户名:
id username
我们可以列出Linux系统中的所有用户以获取所需的用户名。
2.仅打印用户的UID
我们可以使用"-u""选项在Linux中打印UID。
如前所述,如果省略用户名,它会显示有关登录用户的信息。
id -u userame
请记住,它仅显示UID,数字值,而不是名称。
Hyman@theitroad:~$id -u 1000
3.仅打印用户的GID
同样,我们可以使用选项-g
来打印用户的GID。
当我说GID时,它是用户所属的默认组的数字ID。
id -g username
同样,它只会显示组的数字ID。
Hyman@theitroad:~$id -g nobody 65534
4.打印用户所属的所有其他组的ID
用户可以属于多个组。
这是Linux文件系统的基本功能。
我们可以使用usermod命令并将其添加到sudo组以提供root权限。
我们可以使用"-g""选项来显示用户所属的所有组的ID。
id -G username
这也仅显示了ID。
Hyman@theitroad:~$id -G igi 1000 4 24 27 30 46 119 130 131
5.打印名称而不是数字ID
数字ID只能令人困惑。
如果我们想要名称,可以将"-N"选项与"-u",-g
或者-g
"组合在一起以显示名称。
例如,如果要显示用户所属的所有组,则可以使用它:
id -nG username
如果我使用选项-n
的前一个示例,这就是它显示的:
Hyman@theitroad:~$id -nG igi igi adm cdrom sudo dip plugdev lpadmin lxd sambashare
打印真实的ID
所有上述示例都显示了有效的ID。
几乎一直都是真实的身份证。
但是,如果我们想确保获得真实ID,可以将选项-R
与-u
,-g
或者-g
组合。
它可以这样用:
id -ru username