如何在Linux中使用id命令

时间:2020-03-05 15:27:41  来源:igfitidea点击:

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