一行命令找出 Linux 中所有真实用户

这篇具有很好参考价值的文章主要介绍了一行命令找出 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 的用户信息。文章来源地址https://www.toymoban.com/news/detail-825396.html

到了这里,关于一行命令找出 Linux 中所有真实用户的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux下kill某个用户所有进程

    参考:linux下4种kill某个用户所有进程的方法_lihuaichen的博客-CSDN博客_linux杀死所有python         使用: top 或者 ps 查看当前用户的运行进程;         使用  kill pid方式可以 杀死某个想杀死的进程; 那么想kill掉所有进程的方法:(4种)         pkill方式:      

    2024年02月11日
    浏览(44)
  • Windows命令创建用户,支持Windows Server或者Win10所有版本,可以在命令中实现自定义用户最全参数,自己运维经验,全部可用有效

    使用PowerShell创建用户可以带上更多的参数,缺点就是用户密码只能设置一样的。 1、设置用户统一的密码 $Password = Read-Host -AsSecureString 注意 :执行这条命令后要输入密码!!! 2、新建用户,可以附带用户详细参数 New-LocalUser \\\"用户名\\\" -Password $Password -FullName \\\"用户全名\\\" -Descr

    2024年02月11日
    浏览(49)
  • Linux 环境中redis查询数据的多种方法,linux 一行命令代替连接 + 查询,不得不看,运维必学

    1、第一种方法:我们可以先登录Linux服务器上,使用redis-cli 命令连接到redis 数据库,使用查询命令 查询我们想要的数据。 2、使用redis --help 查询redis中的参数,使用命令行中所带的 -e 参可以查询我们想要的数据。 2. 1、使用数据库连接命令 + -e + 数据库查询命令。 3、第三种

    2024年02月12日
    浏览(56)
  • python 找出list列表中相同元素(指定元素)的所有索引

    有时需要获取 列表 中某一元素的所有索引,而获取列表元素索引的函数 index 只能返回第一个满足条件的元素的索引。 此时我们可以通过两种方式获取其所有索引: 1.将list转为array 对于array对象,可以使用如下方式获取某个元素的所有索引 其中nums_list为原始列表,nums为arr

    2023年04月14日
    浏览(43)
  • 【linux系统操作】linux中所有基础命令失效,显示找不到该命令

    原因: 有可能是之前修改了etc/profile.d目录下的环境变量配置文件导致。 解决办法: 方法一 : 恢复配置文件。 如果记得修改了配置文件那个地方,可以将配置文件修改回去,然后再保存更新 。 方法二 : 直接在linux命令行界面输入如下,然后回车(导入环境变量,以及sh

    2024年02月01日
    浏览(43)
  • linux中所有基础命令失效,显示找不到该命令

    原因: 有可能是之前修改了etc/profile.d目录下的环境变量配置文件导致。 解决办法: 方法一:恢复配置文件。 如果记得修改了配置文件那个地方,可以将配置文件修改回去,然后再保存更新。 方法二 :直接在linux命令行界面输入如下,然后回车(导入环境变量,以及shell常

    2024年02月15日
    浏览(89)
  • linux--top命令查看系统所有详情

    Linux系统可以通过 top 命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高。 一、top命令的第一行“top - 19:56:47 up 39 min, 3 users, load average: 0.00, 0.00, 0.00”显示的内容依

    2024年02月16日
    浏览(44)
  • Linux权限命令-修改文件的所有者

    在 Linux 系统中,文件和目录的所有者和所属组是决定访问权限的重要因素之一。如果用户需要更改文件或目录的所有者,可以使用 chown 命令来完成。本文将介绍 chown 命令的语法、实操以及各种方法之间的区别。 chown 命令的基本语法格式为: 其中, 选项 表示需要使用的参数

    2024年02月11日
    浏览(55)
  • 查看linux 所有运行的应用和端口命令

    要查看 Linux 中所有运行的应用程序及其对应的端口,可以使用以下命令: 1. 使用 `netstat` 命令(已被弃用,建议使用 `ss` 命令): netstat -tuln 这会显示当前系统上所有打开的网络连接和监听的端口。其中,`-t` 表示显示 TCP 连接,`-u` 表示显示 UDP 连接,`-l` 表示显示监听状态

    2024年02月14日
    浏览(38)
  • linux把一个文件和子目录下面的内容改为所有用户可读写执行

    要将一个文件和子目录下的内容设置为所有用户可读、写和执行权限,可以使用 chmod 命令。 假设您要修改的文件和子目录所在的路径为 /path/to/file_or_directory ,可以运行以下命令: 这里的 -R 选项表示递归地对目录和子目录进行权限修改。 777 表示赋予所有用户读、写和执行权

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包