• Linux 中如何使用 id 命令


    Linux 中如何使用 id 命令

    我从cnaaa.com购买了服务器。

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

    **选项 ****描述 **
    -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是相同的。但是也有不同的时候,也就是使用有效ID的时候,比如普通用户需要修改受保护的文件,最常见的场景就是使用 passwd 命令修改密码。修改密码其实是修改的 root 用户所属的 /etc/passwd 文件。

    id 命令的一些例子

    接下来我们介绍一些使用 id 命令的例子。

    1,打印某个用户的 uid 和gid

    要打印用户的 uid 和 gid,只需在 id 命令后指定用户名即可:

    id 
    

    可以列出 Linux 系统中所有的用户,以获取用户名。关于如何列出所有用户,我们后面会单独介绍。

    2,仅打印用户的 UID

    可以使用 -u 选项来打印用户的 uid。如前所述,如果省略用户名,它会显示当前登录用户的信息。如下语法结构:

    id -u 
    

    注意,这里只会显示 uid,它是一个数值,而不是名称:

    $ id -u1000
    

    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 gliu1000 4 24 27 30 46 119 130 131
    

    5,打印用户名称(而不是数字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 
    

    关于它的输出,大家可以自行尝试一下看看。

  • 相关阅读:
    Clog——基于C语言的日志系统设计
    学生HTML个人网页作业作品 简单的IT技术个人简历模板html下载 简单个人网页设计作业 静态HTML个人博客主页
    自学WEB后端02-基于Express框架完成一个交互留言板!
    阶段性总结:跨时钟域同步处理
    RocketMQ(14)——发送带Key的消息
    【Game Of AutoTest】3、游戏自动化测试的框架设计
    页面图片渲染不出来,如何定位是前后端问题?
    Java多线程——Callable和future
    sentinel实现流控规则nacos持久化
    安达发|AI算法全方位打造制造业AI智能化工厂的超级大脑
  • 原文地址:https://blog.csdn.net/weixin_53641036/article/details/127115420