0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Linux中的id命令该如何去使用呢

冬至子 来源:TIAP 作者:刘光录 2022-11-15 16:36 次阅读

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命令的最常见选项:

1.jpg

“真实”与“有效”的用户ID和组ID

这可能会让你感到有些疑惑,什么是 “真实” 的用户ID?什么是 “有效” 的用户ID?

在系统中创建用户时,会为其指定用户名、用户ID(uid)和默认的组,该默认组的ID就是该用户的gid,这就是“真实”的用户ID和组ID。

同时,在Linux中,进程可以通过其他用户和组运行,所以还有第二组ID,即称为“有效”的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 -u
1000

3,仅打印用户的 gid

可以使用选项 -g 来打印用户的 gid。这里所说的 gid 是指用户所属的默认组的组ID,它是一个数值。

id -g

同样,它只会显示组的数字ID,看下面的例子:

$ id -g nobody 
65534

4,打印用户所属的所有其他组的ID

一个用户可以属于多个组,这是 Linux 文件系统的基本特性。你可以使用 usermod 命令并将其添加到 sudo 组以授予其 root 权限。

可以使用 -G 选项显示用户所属的所有组的 ID:

id -G

同样,这里也是只显示ID,为数值:

$ id -G gliu
1000 4 24 27 30 46 119 130 131

5,打印用户名称(而不是数字ID)

数字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系统
    +关注

    关注

    4

    文章

    587

    浏览量

    27202
  • Ubuntu
    +关注

    关注

    5

    文章

    553

    浏览量

    29331
收藏 人收藏

    评论

    相关推荐

    检查Linux DRM显示设备ID的脚本

    不同设计里,Linux DRM子系统里设备ID不一样。每次修改,费时费力,也容易出错。因此写了以下脚本,自动查找encoder_id,crtc_id,connector_
    发表于 08-02 09:01 861次阅读

    Linux系统unlink命令的使用

    Linux 删除文件,我们通常使用 rm 命令。除此以外,还有另外一个命令,可以用于删除文件和链接,这就是 unlink
    发表于 09-13 14:29 1966次阅读

    Linux基本命令总结

    都说Linux命令多,实际工作我们又有多少命令会接触用到?本文跟大家分享Linux运维工作中
    的头像 发表于 01-11 10:32 881次阅读

    如何使用嵌入式Linux开发工具和linux常用基本命令

    RTSP流媒体传输协议包括哪些?如何使用嵌入式Linux开发工具和linux常用基本命令
    发表于 11-12 06:52

    嵌入式Linux操作系统怎样使用

    嵌入式Linux操作系统怎样使用?嵌入式Linux操作系统的命令有哪些
    发表于 12-23 08:06

    怎样使用Linux操作命令与开发工具

    怎样使用Linux操作命令与开发工具Linux文件的属性有哪些
    发表于 12-23 09:41

    Linux系统命令指南

    Linux 文件命令精通指南”,我们讨论了利用最基础和最常用 Linux 文件命令所需的基
    发表于 05-23 10:23 928次阅读

    概述学习Linux系统命令的简单方法

    如果说如何快速学习、了解 Linux 的话,我的答案是学命令、背命令!为何?对于一名新手来说,去学习 Linux 的思想、了解
    发表于 04-11 08:57 842次阅读
    概述学习<b class='flag-5'>Linux</b>系统<b class='flag-5'>中</b><b class='flag-5'>命令</b>的简单方法

    Linuxmail命令的使用教程分享

    在这里整理一下Linuxmail命令的使用。mail也是一个常用的命令,我们很多地方都要用到它,比如定时把系统状况或日志发送到我们的邮箱
    发表于 03-25 16:01 9次下载

    如何使用这几个Linux命令

    使用 Linux 系统的开发者,很多人都有自己喜欢的系统命令,下面这个几个命令令是我平常用的比较多的,分享一下。
    的头像 发表于 06-15 16:06 1466次阅读

    如何在Linux使用pidof命令

    `pidof`是一个命令行程序,可让您找到正在运行程序的进程ID。在教程,我们将说明如何在Linux 使用pidof命令
    的头像 发表于 12-05 17:01 2159次阅读

    如何使用ip命令Linux中进行网络管理

    Linux,'ip'命令是管理网络方面最强大的命令之一。
    发表于 05-31 12:25 311次阅读

    恒讯科技分析:如何使用cp命令Linux复制目录?

    复制目录是Linux的一项基本任务,它允许我们复制目录、创建备份或在不同位置之间传输数据。Linux复制文件和目录最常用的
    的头像 发表于 06-26 17:14 617次阅读

    linux创建group的命令

    Linux,创建用户组的命令是 groupadd 。 以下是一个例子: groupadd groupName 这个命令将创建一个新的用户
    的头像 发表于 11-08 11:35 1208次阅读

    linuxmore命令的用法

    Linux, more 命令是一个基本的分页器,它一次显示一屏文本内容,按空格键向下滚动一屏,按 q 键退出。 more 命令的基本语法
    的头像 发表于 11-08 14:19 867次阅读