Linux查看用户信息的几种方法

面试官:说说Linux下查看当前登录用户信息的所有方法 点赞关注,不会迷路! 背景 作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动。有些时候,你甚至需要知道他(她)们正在做什么。本文总结了4种查看系统用户信息(通过编号(ID))的方法。 正文 1. 使用w命令查看登录用户正在使用的进程信息 w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括: 用户名称 用户的机器名称或tty号 远程主机地址 用户登录系统的时间 空闲... 阅读详情
AI摘要

本文介绍了在Linux系统中查看用户信息的各种方法,包括使用whoami、id等命令查看当前登录用户信息,通过cat命令查看/etc/passwd和/etc/shadow文件获取用户详细资料,以及利用lslogins、getent和compgen命令进行更全面的用户信息检索。

整理了工作中常见查看用户信息的几种方式,供有需要的码友参考。

目录

1、查看当前登录用户

1.1、whoami 命令

1.2、id 命令

2、查看/etc/passwd文件

3、查看/etc/shadow文件

4、使用lslogins命令

5、使用getent命令

5.1、getent passwd

5.2、getent hosts

5.3、getent services

6、使用compgen命令

6.1、compgen语法

6.2、compgen用户相关选项

7、代码拾遗


运行环境:

1、查看当前登录用户

1.1、whoami 命令

查看当前登录用户名

whoami

--------------------------------------------------------------------------------
root

1.2、id 命令

打印 当前用户名 的信息,输出结果各字段如下:

  • uid:显示 用户ID 和 用户名

  • gid:显示 用户组ID 和 组名称

  • groups:显示 用户的附加 组ID 和 组名称

id

--------------------------------------------------------------------------------
uid=0(root) gid=0(root) groups=0(root)

2、查看/etc/passwd文件

文件 /etc/passwd 存储着所有用户的基本信息,并且 所有用户 都对此文件拥有读权限。

cat /etc/passwd

--------------------------------------------------------------------------------
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

可以看到每行记录对应着一个用户信息,每条记录 共7段 用 冒号: 拼接,格式如下:

  • 第1段:用户名
  • 第2段:登录密码,默认用x替代,真实密码详见《/etc/shadow》文件
  • 第3段:uid 用户唯一ID
  • 第4段:gid 所属的用户组ID,uid 和 gid 对应关系详见《/etc/group》文件
  • 第5段:账号的说明性描述
  • 第6段:用户的家目录路径
  • 第7段:默认shell,如果为 /sbin/nologin/ 则不允许登录

3、查看/etc/shadow文件

文件 /etc/shadow 存储着所有 用户的口令密文信息,同时为确保安全性,仅 root 权限用户 对此文件拥有读权限。

cat /etc/shadow

--------------------------------------------------------------------------------
root:密文:17631:0:99999:7:::
daemon:*:17557:0:99999:7:::
bin:*:17557:0:99999:7:::
sys:*:17557:0:99999:7:::

可以看到每行记录对应着一个用户密码信息,每条记录 共9段 用 冒号: 拼接,格式如下:

  • 第1段:用户名
  • 第2段:密码密文(SHA512散列加密算法)
  • 第3段:最近一次修改密码时间(从1970-01-01开始的天数)
  • 第4段:密码最小修改间隔的天数(依赖第3段的时间,如:0 表示 随时可以修改密码)
  • 第5段:密码有效期(最晚 N 天之后必须修改,如:99999 表示 密码长期有效)
  • 第6段:密码到期前提醒(依赖第5段的时间,如:7 表示密码有效期第7天开始,每次登录时提示)
  • 第7段:密码过期后宽限天数(依赖第5段的时间,如:10 表示 密码过期后10天内允许登录,过期禁用)
  • 第8段:账号失效日期(从1970-01-01开始的天数,到期无论账号是否有效,都将无法使用)
  • 第9段:保留字段,无含义

4、使用lslogins命令

lslogins 命令 列出系统中所有用户的信息。输出结果各字段如下:

  • UID:用户ID
  • USER:用户名
  • PWD-LOCK:密码已设置且已锁定(0:未锁定、1:已锁定)
  • PWD-DENY:登录密码是否禁用(0:允许密码登录、1:禁用密码登录)
  • LAST-LOGIN:最近一次的登录日期
  • GECOS:用户的其它信息(如:用户描述)
lslogins

--------------------------------------------------------------------------------
 UID USER            PROC PWD-LOCK PWD-DENY  LAST-LOGIN GECOS
   0 root              94        0        0    08:21:11 root
   1 bin                0        0        1             bin
   2 daemon             0        0        1             daemon
   3 adm                0        0        1             adm
   4 lp                 0        0        1             lp
   5 sync               0        0        1             sync
   6 shutdown           0        0        1 Jun01/02:00 shutdown
   7 halt               0        0        1             halt
   8 mail               0        0        1             mail
  11 operator           0        0        1             operator
  12 games              0        0        1             games
  14 ftp                0        0        1             FTP User
  28 nscd               0        0        1             NSCD Daemon
  38 ntp                0        0        1             
  72 tcpdump            0        0        1             
  74 sshd               0        0        1             Privilege-separated SSH
  81 dbus               0        0        1             System message bus
  89 postfix            0        0        1             
  99 nobody             0        0        1             Nobody
 192 systemd-network    0        0        1             systemd Network Management
 998 chrony             0        0        1             
 999 polkitd            0        0        1             User for polkitd

5、使用getent命令

getent 命令是从管理数据库中获取条目。

getent --help

--------------------------------------------------------------------------------
Usage: getent [OPTION...] database [key ...]
Get entries from administrative database.

  -i, --no-idn               disable IDN encoding
  -s, --service=CONFIG       Service configuration to be used
  -?, --help                 Give this help list
      --usage                Give a short usage message
  -V, --version              Print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Supported databases:
ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups
netgroup networks passwd protocols rpc services shadow

For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

支持查询的数据库有:
ahosts  ahostsv4  ahostsv6  aliases  ethers  group  gshadow  hosts  initgroups
netgroup  networks  passwd  protocols  rpc  services  shadow

5.1、getent passwd

输出格式同 cat /etc/passwd 命令

  • 获取 所有 用户信息
# 查找所有用户信息
getent passwd
  • 获取 指定 用户信息
# 查找指定用户信息(如:root)
getent passwd root

5.2、getent hosts

输出格式同 cat /etc/hosts 命令

  • 获取 所有 主机信息
# 获取 所有 主机信息
getent hosts
  • 获取 指定 主机信息
# 根据 IP地址 查找
getent hosts IP地址

# 根据 域名 查找
getent hosts 域名

5.3、getent services

  • 获取 所有 服务信息(服务名、端口号、协议)
getent services
  • 获取 指定 服务信息(服务名、端口号、协议)
getent services 端口号

6、使用compgen命令

6.1、compgen语法

compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]

选项
-a 列出所有别名;相关:alias
-b 列出bash内置命令
-c 列出所有可用命令
-d 列出当前目录下所有目录
-e 列出全局变量;相关:export
-f 列出当前目录所有文件
-g 列出系统所有的组
-j 列出后台执行的作业
-k 列出shell保留字
-s 列出所有的service
-u 列出系统所有的用户
-v 列出shell所有变量

6.2、compgen用户相关选项

# 列出系统所有的用户
compgen -u

# 列出系统所有的组
compgen -g 

7、代码拾遗

# 计算两个日期相差的天数
# echo $((($(date -d"结束日期" +%s) - $(date -d"开始日期" +%s)) / 86400))
echo $((($(date -d"2022-10-01" +%s) - $(date -d"2022-09-21" +%s)) / 86400))

# 求未来的日期(如:10天后)
date -d "2022-09-21 10 days"

# 求过去的日期(如:10天前)
date -d "2022-09-21 -10 days"

参考:

在 Linux 中查找用户帐户信息和登录详细信息的 12 种方法 除了使用系统提供的工具和文件,您还可以编写自己的脚本来查找用户帐户信息和登录详细信息,并将结果记录到自定义的日志文件中。这样可以根据您的需求和系统配置进行更灵活的管理和监视。/bin/bash # 查找用户帐户信息 cat /etc/passwd # 查找登录详细信息 lastlog # 记录结果到日志文件 LOG_FILE = "/var/log/user_info.log" {以上是12种在Linux中查找用户帐户信息和登录详细信息的方法。 阅读详情

相关推荐

Linux命令:查看系统中所有用户

在Linux系统中,可以使用特定的命令来查看系统中的所有用户。这个文件包含了系统中的所有用户信息,包括用户名、用户ID(UID)、组ID(GID)、用户家目录、默认shell等。文件中的每一行都表示一个用户。类似地,你可以使用其他文本处理工具来提取其他用户信息,如用户ID(UID)、组ID(GID)、用户家目录等。文件和文本处理工具,你可以获取系统中所有用户的相关信息。命令来查看该文件的内容,并通过一些文本处理工具来提取用户信息。运行该命令后,系统将显示所有用户的用户名。要查看系统中的所有用户,可以使用。

InjeProgram的博客 5472

linux下查看当前用户、所有用户的方法

2、通用方法:直接查看/etc/passwd 文件后面第二个冒号的值大于1000时,这个就是一个用户。1、正常登陆的用户,在/home下都有家目录,所以可以直接看这个目录下的文件。当前用户为:book,使用tty7的终端,后面是一些其他信息。当前用户为:book,使用tty7的终端,后面是登陆的时间。当前用户为:book,很精简输出结果。

Purse的博客 5887

Linux 用户账号管理 - 查看当前用户名

想要管理好你的 Linux 系统,首先需要学会如何查看当前用户账号名。本文将向你介绍如何在 Linux 中查看当前用户名,是Linux初学者必备的基础知识哦!

鹅不糊涂的博客 8437

在 Linux 中查看当前用户帐户的 3 种办法

…

u013669912的博客 7083

macOS 27下PlayCover“没有权限打开”的完整修复指南

macOS系统通过Gatekeeper、TCC(透明、同意与控制)和安全启动等机制,对第三方应用进行层层校验,以防范恶意代码。这些机制会检查应用的隔离属性、签名状态以及所需系统权限,当任一环节不满足时,就会出现“没有权限打开”的提示。对于开发者工具或未上架App Store的开源软件,这类拦截尤为常见。尤其在macOS 27上,系统进一步收紧了绕过策略,导致PlayCover等工具无法正常启动。本文以PlayCover为例,详细解析权限链路上的三道关卡,并给出清除隔离属性、调整SIP状态、重置TCC记录等完

weixin_32612263的博客 746

ISP-全局色调映射(GTM)算法简单实现

色调映射算法,色彩空间转换LAB

notgoodenouf的博客 2241

Linux系统中查看用户信息的几种实用方法

我实际使用时发现,它的响应速度很快,操作界面也很直观,能够帮助快速掌握这些实用技巧。在实际使用Linux系统时,经常需要查看当前登录用户或者系统所有用户的信息。命令不仅显示当前用户,还会显示系统负载和用户正在运行的进程,是一个综合性的用户活动监控工具。在多用户环境中,这些命令对于系统管理和安全审计非常有用,可以帮助管理员快速了解系统使用情况。命令可以查看所有用户的最后登录时间,帮助管理员了解用户活动情况,其中大部分是系统内置账户。命令更加简洁,它只返回当前用户的用户名,适合在脚本中快速获取当前用户身份。

FrostfireStag78的博客 462

银河麒麟V10系统下VLC播放器安装全攻略(附3.0.9.2版本离线包下载)

本文详细介绍了在银河麒麟V10操作系统无网络环境下,从零开始编译安装VLC 3.0.9.2播放器的完整攻略。通过构建本地YUM仓库解决依赖问题,提供离线资源包下载,并逐步指导完成编译环境配置、软件编译与安装,帮助用户在国产麒麟系统上成功部署强大的多媒体播放能力。

a2b3c4d5e的博客 1214

Linux查看用户信息/查看所有用户信息的命令

查看文件 /etc/passwd Linux 系统的所有用户信息都保存在文件 /etc/passwd 中,查看文件的命令如下: [root@htlwk0001host cron]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/false lp:x:4:7:

liaowenxiong的博客 3万+

C#部署YOLO三种方案深度实测:OpenCV DNN vs ONNX Runtime vs TensorRT

在工业视觉项目落地阶段,C#生态下部署YOLO模型主要有三条技术路线。很多开发者仅凭经验选型,往往在部署后期踩中性能瓶颈、兼容故障、维护成本超标的坑。本文基于工控机常见硬件配置,针对YOLOv8系列模型做控制变量实测,从推理性能、部署难度、工业稳定性、综合成本等多个维度做横向对比,给出可直接落地的选型结论。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 466

高通开发系列 - Linux/Ubuntu移植到QCS8xxx平台

QCS8250和QRB5165平台属于体系架构相同的芯片,前置是带cellular而后者不带,即前置有移动网络而后者没有。 BSP部分的软件内容有差异需要修改外,同一套代码编译出来的执行程序是可以运行的,不会存在体系架构、指令集不匹配的问题。 QCS8250平台没有Linux/Ubuntu的软件SDK,只有Android的SDK,但是它对应j兼容的QRB5165平台有LE(Linux)和Ubun(Ubuntu)SDK。所以我们需要做的就是用QRB5165 Linux/Ubuntu移植到QCS8250平台上来

fulinux的博客 3186

linux 查看用户信息

目录 /etc/passwd id命令 whois命令 whoami命令 who命令 w命令 finger命令 vlock命令 /etc/passwd 有的用户信息在根目录 /etc/passwd 文件内,而passwd的所有权限是root用户及root组用户,所有想要查看所有用户,需要root用户登录系统。 root登录,more /etc/passwd 除了cat...

whatday的专栏 9239

(2-2-2)位置控制算法:常用的位置控制算法(2)

例如下面是一个使用滑模控制算法实现机器人位置控制的例子,在该例子中,假设机器人在一维空间中移动,目标是使机器人的位置迅速、鲁棒地达到设定的目标位置。自适应控制算法通过实时地调整控制器参数,可以适应系统的变化,从而提高系统的鲁棒性和性能。模型预测控制(Model Predictive Control,MPC)是一种先进的控制策略,通常应用于动态系统,以实现对系统状态的优化控制。(6)迭代优化:随着时间推移,MPC迭代执行上述步骤,持续优化控制输入,以适应系统动态和外部扰动,实现对系统状态的稳健控制。

码农三叔 1608

linux查看当前用户信息及其用户切换

linux查看当前用户信息及其用户切换 一、查看用户信息 作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动。有些时候,你甚至需要知道他(她)们正在做什么。本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法。 使用w命令查看登录用户正在使用的进程信息 w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp...

杰子的世界 3万+

YOLO项目从零开始:超详细运行教程(图文保姆级教学)

至此,我们已经完整跑通了YOLO项目的安装与启动流程,无论你是零基础小白还是刚入门的AI新兵,只要按部就班操作,也能轻松实现目标检测项目的落地。

一键难忘的博客 4800

Win11 系统下 VisualStudio2022 配置点云库 PCL1.11.1

安装完成之后打开文件夹E:\PCL 1.11.1\3rdParty\OpenNI2双击 并选择路径 (E:\PCL 1.11.1\3rdParty\OpenNI2) 安装即可全部安装完成之后,将pcl-1.11.1-pdb-msvc2019-win64.zip解压后的 .pdb文件拷贝到(E:\PCL 1.11.1\bin)中设置环境变量:到此,环境变量配置完成。

qq_53545309的博客 1127

Linux查看系统中用户信息,Linux下用于查看系统当前登录用户信息的4种方法

作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动。有些时候,你甚至需要知道他(她)们正在做什么。本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法。1. 使用w命令查看登录用户正在使用的进程信息w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:用户名称用户的机器名称或tty...

weixin_42348026的博客 3537

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

5 种方法查看当前系统登录的用户信息

点击上方“杰哥的IT之旅”,选择“置顶公众号”干货、福利第一时间送达!在工作中,每当用户登录系统时,程序都要在 lastlog 文件中搜索要登录用户的 UID 号,如果查...

JackTian 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

linux查看当前登录用户信息,Linux下用于查看系统当前登录用户信息的4种方法

Linux下用于查看系统当前登录用户信息的4种方法作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动。有些时候,你甚至需要知道他(她)们正在做什么。本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法。1. 使用w命令查看登录用户正在使用的进程信息w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w...

weixin_29614359的博客 1759

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【linux】Linux查看服务器登陆用户信息命令(w、last、who)详解

1 背 景 我们在工作或者学习中使用linux服务器的时候,经常会遇到多人共用一台服务器的情形。于是我们可能会有如下需求或者困惑: 是谁在和我共用这台服务器呢? 是谁正在使用这台服务器导致我不能正常使用呢? 想对服务器进行关机,需要确认是否有人还在使用这台服务器呢? …… Linux服务器有提供一些命令能够查看服务器用户信息情况的,包括w、last、who命令,下面我们就分别对这些命令进行详解。 2 命令详解 2.1 w命令 w命令用来查看系统当前的登陆用户信息,包括用户名/IP、登陆时间.

喝酸奶舔盖斯基的专栏 7027

Linux下用于查看系统当前登录用户信息的4种方法

作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动。有些时候,你甚至需要知道他(她)们正在做什么。本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法。 1. 使用w命令查看登录用户正在使用的进程信息 w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括: 用户名

差不多先生 1万+

linux 怎么查看系统用户,Linux系统下查看用户的常用方法

使用Linux系统时经常需要查看用户信息,除了cat /etc/passwd文件外,其实还有很多命令可以直接查看系统用户信息,下面总结一些Linux系统下查看用户的常用方法:id命令功能:打印指定用户的用户和组信息。语法:id [选项]... [用户名]说明:如果省略用户名,打印打印当前用户的用户和组信息。whois命令功能:查找并显示用户信息。语法:whois 【选项】 …… 对象 ……说明:w...

weixin_42493720的博客 8877

【查看linux中所有用户的三种方式】

过使用 /etc/passwd 文件,getent 命令,compgen 命令这三种方法查看系统中用户的信息。

qq_18804633的博客 1万+

linux 查看用户信息id,查看组、用户(包括id、finger指令)

以root身份登录。查看组:more /etc/group查看用户:cat /etc/passwd查看用户相信信息:1、id [option] 用户名-a忽略, 同 其它 版本 兼容-g, --group只 显示 组 ID-G, --groups只 显示 附加组-n, --name对于 -ugG 显示 名字 而 不是 数值-r, --real对于 -ugG 显示 真实 ID 而 不是 有效 ID...

weixin_42382558的博客 7452
上一篇: Apache Tomcat选择哪个版本好?
下一篇: Windows10远程桌面连接会话已结束解决方法之一
狂龙骄子
博客等级 码龄17年 1万+粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂龙骄子

独码乐,不如众码乐,乐享其中

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值