当前位置: 首页 > 科技观察

如何在Linux中使用id命令,它有什么用?

时间:2023-03-22 13:49:55 科技观察

在Linux中,id命令用于显示用户真实有效的用户ID和组ID。在本文中,我们通过一些例子来介绍如何使用id命令。Linux中的id命令是id命令的语法如下:id[options][username]在实际命令中,如果不提供username(即用户名),命令将显示当前的信息登录用户。例如下面的例子显示ubuntu当前登录用户的信息:$iuid=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命令最常用的选项:选项说明-u打印有效的用户ID-g打印有效的组ID-G打印用户所属的所有组的ID-n打印名称(需要使用与-u、-g或-G组合)-r打印真实ID(需要与-u、-g或-G组合)“真实”和“有效”的用户ID和组ID这可能会让你觉得有点困惑,什么是“真实”用户ID?什么是“有效”用户ID?在系统中创建用户时,会为其分配用户名、用户ID(uid)和默认组。默认组的ID是用户的gid,也就是“真实”的用户ID和组ID。同时,在Linux中,进程可以在其他用户和组下运行,因此还有第二组ID,称为“有效”。大多数时候,“真实”ID和“有效”ID是相同的。但是也有不同的时候,就是使用有效ID的时候,比如普通用户需要修改受保护的文件。最常见的场景是使用passwd命令修改密码。修改密码实际上就是修改root用户所属的/etc/passwd文件。id命令的一些例子接下来我们介绍一些使用id命令的例子。1.打印用户的uid和gid要打印用户的uid和gid,只需要在id命令后面指定用户名即可:id可以列出linux系统中的所有用户,获取用户名。如何列出所有用户,后面会单独介绍。2.只打印用户的UID可以使用-u选项打印用户的uid。如前所述,如果省略用户名,它会显示当前登录用户的信息。语法结构如下:id-u注意这里只会显示uid,是一个值,不是名字:$id-u10003,只打印用户的gid可以使用选项-g打印用户的gid。这里所说的gid是指用户所属的默认组的组ID,是一个数值。id-g同样,它只会显示组的数字ID,请参见下面的示例:$id-gnobody655344,打印用户所属的所有其他组的ID一个用户可以属于多个组,这里是Linux文件系统的基本特征。您可以使用usermod命令并将其添加到sudo组以授予其root权限。可以使用-G选项显示用户所属的所有组的ID:id-G同样这里只显示ID,是一个值:$id-Ggliu10004242730461191301315,打印用户名(而不是数字ID)数字ID可能会造成混淆,因此如果需要,请将-n选项与-u、-g或-G结合使用以显示用户名。比如要显示一个用户所属的所有组,可以这样:id-nG我们用前面打印一个用户所有组的例子,加上-n选项,会显示如下:$id-nGgliugliuadmcdromsudodipplugdevlpadminlxdsambashareprintrealids上面给出的例子都显示“有效”的ids,但几乎所有时候它们也是“真实的”ids。但是,如果你想确保获得“真实”的ID,你可以使用-r选项,它可以与-u、-g或-G结合使用:id-ru关于它的输出,你可以自己试试看。以上就是本次分享的全部内容,欢迎讨论。

最新推荐
猜你喜欢