哈喽大家好,我是咸鱼。

接触过 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 中所有真实用户的更多相关文章

  1. 使用ps、top、ps_mem命令找出Linux中的最大内存消耗过程

    使用ps.top.ps_mem命令找出Linux中的最大内存消耗过程 2020-02-08 16:06:59作者:自力稿源:云网牛站 您可能已经看到Linux系统多次消耗过多的内存,如果是这种情况,那 ...

  2. 如何快速找出Linux中的重复文件

    md5sum | sort | uniq -w32 --all-repeated=separate [1]find -not -empty -type f -printf “%s\n” :find是查 ...

  3. 通过代码审计找出网站中的XSS漏洞实战(三)

    一.背景 笔者此前录制了一套XSS的视频教程,在漏洞案例一节中讲解手工挖掘.工具挖掘.代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完,内容有一些关联性,其中手工XSS挖掘篇地址为 ...

  4. 通过Web安全工具Burp suite找出网站中的XSS漏洞实战(二)

    一.背景 笔者6月份在慕课网录制视频教程XSS跨站漏洞 加强Web安全,里面需要讲到很多实战案例,在漏洞挖掘案例中分为了手工挖掘.工具挖掘.代码审计三部分内容,手工挖掘篇参考地址为快速找出网站中可能存 ...

  5. [LeetCode] Find All Numbers Disappeared in an Array 找出数组中所有消失的数字

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  6. 剑指Offer 找出字符串中第一个只出现一次的字符

    题目描述 找出字符串中第一个只出现一次的字符 如果无此字符 请输出'.' 输入描述: 输入一串字符,由小写字母组成 输出描述: 输出一个字符 输入例子: asdfasdfo 输出例子: o 思路:数组 ...

  7. 找出字符串中第一个不重复的字符(JavaScript实现)

    如题~ 此算法仅供参考,小菜基本不懂高深的算法,只能用最朴实的思想去表达. //找出字符串中第一个不重复的字符 // firstUniqueChar("vdctdvc"); --& ...

  8. 剑指Offer:找出数组中出现次数超过一半的元素

    题目:找出数组中出现次数超过一半的元素 解法:每次删除数组中两个不同的元素,删除后,要查找的那个元素的个数仍然超过删除后的元素总数的一半 #include <stdio.h> int ha ...

  9. 找出数组中出现奇数次的元素<异或的应用>

    点击打开链接:百度面试题之找出数组中之出现一次的两个数(异或的巧妙应用) 题目描述|:给定一个包含n个整数的数组a,其中只有一个整数出现奇数次,其他整数都出现偶数次,请找出这个整数 使用异或操作,因为 ...

  10. 找出数组中出现次数超过一半的数,现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数

    找出数组中出现次数超过一半的数,现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数 #include<iostream>using namespace s ...

随机推荐

  1. jdk1.8(java8)新特性

    借鉴之:https://blog.csdn.net/qq_28410283/article/details/80601495 Lambda 表达式: //1.Lambda 表达式,也可称为闭包,它是推 ...

  2. spring启动流程 (2) Bean实例化流程

    本文通过阅读Spring源码,分析Bean实例化流程. Bean实例化入口 上一篇文章已经介绍,Bean实例化入口在AbstractApplicationContext类的finishBeanFact ...

  3. Metastability 亚稳态问题

    亚稳态问题 各种跨时钟域的问题都会归结于亚稳态的问题,IP设计时钟域不超过两个,对于CDC设计要求不高;对于SoC设计来说,CDC处理十分重要 1.什么是亚稳态? transition time 是可 ...

  4. 274. H 指数

    1.题目介绍 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数.计算并返回该研究者的 h 指数. 根据维基百科上 h 指数的定义:h 代表 ...

  5. 44从零开始用Rust编写nginx,命令行参数的设计与解析及说明

    wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代 ...

  6. JDK21更新特性详解

    有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 文章更新计划 文章更新计划 | 430: | String T ...

  7. [转帖]NUMA导致的Oracle性能问题

    https://www.cnblogs.com/realcp1018/p/6903721.html 背景简介: Oracle版本:11.2.0.4 OS 版本:OEL5.8 在一次Oracle的Dat ...

  8. [转帖]058、集群优化之PD

    PD调度基本概念 调度流程 调度中还有这还缺来了merge,例如合并空region. store: 基本信息,容量,剩余空间,读写流量等 region: 范围,副本分布,副本状态,数据量,读写流量等 ...

  9. [转帖]MinIO Client(mc)完全指南

    https://www.cnblogs.com/lvzhenjiang/p/14944821.html 目录 一.获取MinIO Client(mc) 1.1 docker版 1.2 Homebrew ...

  10. [粘贴]使用 Dumpling 导出数据

    https://docs.pingcap.com/zh/tidb/stable/dumpling-overview#dumpling-%E4%B8%BB%E8%A6%81%E9%80%89%E9%A1 ...