找出Linux中所有真实用户的命令详解

 更新时间:2024年02月06日 08:38:10   作者:咸鱼运维杂谈  
接触过 Linux 的小伙伴们都知道在 Linux (或者说类 Unix)中,有三种类型的用户,超级用户,系统用户和普通用户,那么如何快速找出 Linux 中的真实用户呢,文中给大家介绍的非常详细,需要的朋友可以参考下

接触过 Linux 的小伙伴们都知道在 Linux (或者说类 Unix)中,有三种类型的用户:

  • 超级用户(UID 为 0):即 root 用户,拥有最高权限。
  • 系统用户(UID 为 1~999):系统内建用户,用于运行系统服务和守护进程。
  • 普通用户(UID 为 1000~60000):为了让使用者能够使用 Linux 系统资源而建立的,用户新建的账号一般就是普通账号。

那么现在问题来了,如何快速找出 Linux 中的真实用户(root 用户和普通用户)?

正式开始之前,我们先介绍一个工具——getent

getent 命令

getent 其实是 "get entries" 的缩写,功能是用于查看系统数据库中(包括 /etc/passwd/etc/shadow/etc/group/etc/hosts 等)的记录信息,它可以根据指定的数据库类型和键来检索条目。

1、查看本地的主机文件(/etc/hosts)中包含的指定域名信息。

[root@localhost ~]# getent hosts 127.0.0.1
127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4

2、查看本地密码文件(/etc/passwd)中指定用户信息。

[root@localhost ~]# getent passwd user1
user1:x:1000:1000::/home/user1:/bin/bash

3、从 /etc/group 数据库中检索指定组信息。

[root@localhost ~]# getent group user1
user1:x:1000:

我们回到问题上来:如何快速找出 Linux 中的真实用户(root 用户和普通用户)?

方法一:

getent passwd | awk -F: '$3 >= 1000 && $3 < 65344 || $3 == 0 {print $1}'
  • getent passwd 用于检索 /etc/passwd 数据库中的所有用户信息
  • awk 命令:
    • -F::指定字段分隔符为冒号 (:)
    • $3 >= 1000 && \$3 < 65344:表示判断第三个字段(用户 ID)大于或等于 1000 且小于 65344。
    • \$3 == 0:表示判断第三个字段(用户 ID)等于 0
    • {print $1}:打印第一个字段(用户名)

总结一下:这条命令将检索 /etc/passwd 数据库中的所有用户信息,并打印出用户 ID 大于或等于 1000 且小于 65344,或者用户 ID 等于 0 的所有用户的用户名。

但是有的小伙伴看到这么一长串的命令就犯难了,"我文本三剑客掌握的不是很好,这条命令尤其是里面的判断看的我头都晕了,还有没有更简单的方法呢?"

方法二:

getent passwd 0 {1000..60000} | awk -F: '{print $1}'
  • getent passwd 0 {1000..60000} 命令用于检索系统中用户 ID 为 0 以及范围从 1000 到 60000 的所有用户信息
  • awk -F: '{print $1}:表示对前面输出的内容进行处理——打印第一个字段

这里补充一下:getent passwd 0 {1000..60000} 命令使用花括号扩展 ({1000..60000}) 来生成一个 0 和从 1000 到 60000 的数字序列。

然后,getent passwd 命令使用这些数字作为参数,以检索系统中用户 ID 为 0 和从 1000 到 60000 的用户信息。

以上就是找出Linux中所有真实用户的命令详解的详细内容,更多关于找出Linux真实用户的命令的资料请关注脚本之家其它相关文章!

相关文章

  • shell一键部署Zabbix的实现步骤

    shell一键部署Zabbix的实现步骤

    本文主要介绍了shell一键部署Zabbix的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • Idea使用Bashsupport插件编辑Shell脚本的方法

    Idea使用Bashsupport插件编辑Shell脚本的方法

    这篇文章主要介绍了Idea插件之——Bashsupport编辑Shell脚本的相关知识,功能非常齐全有检查错误并且还可以在idea中直接运行shell脚本,本教程带领大家一步步演示插件的安装和配置,需要的朋友可以参考下
    2021-05-05
  • Linux实现定时备份MySQL数据库并删除30天前的备份文件

    Linux实现定时备份MySQL数据库并删除30天前的备份文件

    这篇文章主要介绍了Linux实现定时备份MySQL数据库并删除30天前的备份文件,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • Linux服务器无法登陆问题的解决方法

    Linux服务器无法登陆问题的解决方法

    下面小编就为大家带来一篇Linux服务器无法登陆问题的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • shell脚本学习与总结

    shell脚本学习与总结

    shell脚本学习和总结,东西很多,供初学者参考
    2013-01-01
  • 详解shell 函数定义与调用

    详解shell 函数定义与调用

    这篇文章主要介绍了shell 函数定义与调用的相关资料,帮助大家更好的理解和学习shell,感兴趣的朋友可以了解下
    2020-09-09
  • Linux Shell 截取字符串的方法示例

    Linux Shell 截取字符串的方法示例

    这篇文章主要介绍了Linux Shell 截取字符串的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Linux中popen函数的作用小结

    Linux中popen函数的作用小结

    popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程。这篇文章重点给大家介绍Linux中popen函数的作用,感兴趣的朋友一起看看吧
    2018-05-05
  • Shell脚本中单引号(‘)和双引号(“)的使用区别

    Shell脚本中单引号(‘)和双引号(“)的使用区别

    这篇文章主要介绍了Shell脚本中单引号(‘)和双引号(“)的使用区别,主要探讨了变量在单引号和双引号中的不同,需要的朋友可以参考下
    2014-06-06
  • linux shell 编程之函数使用详解

    linux shell 编程之函数使用详解

    使用linux的shell编程,可以说函数是非常重要的内容,也是在编写各类shell脚本的时候经常用到的,这篇文章主要介绍了linux shell 编程之函数使用,需要的朋友可以参考下
    2022-10-10

最新评论