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

在 linux 中,id 命令用于显示用户的真实有效的用户id和组id。
本文我们通过一些例子来介绍一下如何使用 id 命令。
linux 中的 id 命令
如下为 id 命令的语法:
id [options] [username]在实际命令中,如果没有提供 username(即用户名),那么该命令将会显示当前登录用户的信息。
比如,下面例子为在 ubuntu 中显示当前登录用户的信息:
$ iduid=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命令的最常见选项:
“真实”与“有效”的用户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 -u10003,仅打印用户的 gid
可以使用选项 -g 来打印用户的 gid。这里所说的 gid 是指用户所属的默认组的组id,它是一个数值。
id -g同样,它只会显示组的数字id,看下面的例子:
$ id -g nobody 655344,打印用户所属的所有其他组的id
一个用户可以属于多个组,这是 linux 文件系统的基本特性。你可以使用 usermod 命令并将其添加到 sudo 组以授予其 root 权限。
可以使用 -g 选项显示用户所属的所有组的 id:
id -g同样,这里也是只显示id,为数值:
$ id -g gliu1000 4 24 27 30 46 119 130 1315,打印用户名称(而不是数字id)
数字id可能会让人弄混了,所以如果需要的话,可以使用 -n 选项,与 -u、-g 或者 -g 结合使用,来显示用户名。
比如,如果想要显示用户所属的所有组,可以这样使用:
id -ng我们使用先前的那个打印用户所有组的例子,添加 -n 选项,它会显示如下内容:
$ id -ng gliugliu adm cdrom sudo dip plugdev lpadmin lxd sambashare打印真实的id
以上所介绍的例子都显示的是“有效”的id,但是几乎所有时候其也是“真实”的id。但是,如果你想确保获得“真实”的id,可以使用 -r 选项,将其与 -u、-g 或者 -g 结合使用:
id -ru关于它的输出,大家可以自行尝试一下看看。


最轻最薄的笔记本是上网本,但实际上你很难再买到
4~20mA变送器的典型故障及解决办法
紫光国微入选“2021中国公司市值增长50强”榜单
速调管高功放维护及故障处理
可信区块链性能专项有哪一些
在Linux中的id命令该如何去使用呢
栅线投影方法的基本原理-三角测量与线性对应关系
支持Apple Watch的智能家居来了 你用了吗?
音响质量评价
590模组改进的方向
关于语音芯片的极限温度你知有多少?
采用DSP+FPGA系统结构实现全姿态指引仪设计
拨动开关是如何工作的,五种拨动开关接线图分享
【解决方案】电能管理系统的设计与应用
智慧灯杆环境监测传感器的功能介绍
四足机器人的商业化未来仍待时间考验
单触控单输出 LED 调光 IC的产品概述
媒体网关的大规模定制
工业自动化应用中的机器学习
智能制造与工业互联网的关系是什么