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

2022-11-17
关注

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系统
您觉得本篇内容如何
评分

相关产品

山东微感 KJ1205-M 本安型分布式光纤测温模块 分布式光纤测温

本安型分布式光纤测温模块基于Linux系统的嵌入式设计,集计算机、光纤通讯、光纤传感、光电控制等技术于一体,具有良好的性能指标和系统稳定性。关键部件为自主研发,具有多项核心知识产权。该测温模块支持厂家系统集成。

Movel AI Seirios FMS 机器人车队管理系统(调度管理) 机器人导航

Seirios FMS 机器人车队管理系统(调度管理) 产品特色 繁忙动态的宽广环境中,可能需要多个机器人来完成任务。使用Seirios车队管理系统(FMS),可以在一个平台中,同时查看和管理多个机器人。产品规格 -建置在Linux Ubuntu ROS 1上 -支援ARM和X86架构 -可整合PLC架构 详情请见此连结 https://cn-movelai.webflow.io/seirios/fms

瑞德泰玛RDM HX530D-U-E RFID读写器

HX530D-U-E身份证UID读卡器是一款符合支持ISO14443B协议,工作频率为13.56MHZ,高频RFID读卡设备,其通过RS485通讯协议实现与PC机及相关设备的连接,支持通道闸机、门禁系统支持:Windows98、NT、2000、XP 演示样例:Visual C++6、Visual Basic 5、Dephi5、PowerBuilder5,提供API文件与通信协议文件,支持window系统、Linux系统下运行。

TelephoneStuff.com 203011 耳机

灵活的原地不动麦克风支架原地不动以获得一致、最佳的语音质量-即插即用设置意味着没有驱动程序或软件可安装-与Microsoft Windows 7、Vista、XP、2000、Macintosh OS 9.1及更高版本和Linux操作系统兼容

MEIGLink 高算力AI模组SNM970 高算力AI模组

SNM970系列模组搭载 Android 13/Linux 操作系统,默认板载存储为256GB UFS+16GB LPDDR5x,支持Wi-Fi 7及BT 5.3。

Koss Corporation STRIVA PRO 音频耳机

用于为耳机充电)Mini-USB-to-audio电缆(允许STRIVA-CAP从任何立体声迷你输出流音频)长mini-USB-to-USB电缆(用于初始CAP设置)安装指南90天有限保修访问MyKOSS音乐管理系统系统要求:计算机能够使用USB接口运行Java:Windows、Mac OSX或Linux(初始耳机设置需要)Internet Explorer、Safari,安装了最新版本Java的Chrome或Firefox

Neousys Technology Inc. iVIS-200 Series 摄像机

针对智能交通系统的iVIS-220B-ITS和iVIS-227B-ITS配备IP50和IP67外壳,可容纳29毫米x 29毫米USB3\/GigE摄像头。有了iVIS-200,您可以快速开发基于Windows\/Linux开放平台的智能摄像头,并最大限度地利用vision软件。

评论

您需要登录才可以回复|注册

提交评论

感知论坛

这家伙很懒,什么描述也没留下

关注

点击进入下一篇

secure boot (一)FIT Image

提取码
复制提取码
点击跳转至百度网盘