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

阅读数:139 评论数:0

跳转到新版页面

分类

Linux

正文

一、查看当前登录用户

1、whoami

查看当前登录用户名

whoami
 
--------------------------------------------------------------------------------
root

2、id

(1)uid 用户的id和用户名

(2)gid 用户组id和组名称

(3)groups 用户附加组id和组名称

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

使用id检测系统中某个用户是否存在

#!/bin/bash
id $1 &> /dev/null && {
  echo $1 is exist
} || {
  echo $1 is not exist

二、读取相关文件

1、/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

共七个字段,用冒号拼接:

(1)用户名

(2)其本是x

(3)uid,用户唯一ID

(4)gid

(5)账号说明性描述

(6)用户的家目录路径

(7)默认shell,如果为/sbin/nologin/,则不允许登录

2、/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:::

共九个字段,用冒号拼接,格式如下:

(1)用户名

(2)密码密文(sha512)

(3)最近一次修改密码时间(从1970-01-01开始的天数)

(4)密码最小修改间隔天数(0表示随时修改密码)

(5)密码有效期(最晚N天之后必须悠,如9999表示密码长期有效)

(6)密码到期提醒(如7表示密码有效期第7天开始,每次登录时提示)

(7)密码过期后宽限天数(如10表示密码过期后10天内允许登录,过期禁用)

(8)账号失败日期(从1970-01-01开始的天数,到期无认账号是否有效,都将无法使用)

(9)保留字段

三、lslogins

列出系统中所有用户的信息。

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

(1)USER 用户名

(2)PWD-LOCK 密码已设置且已锁定(0: 未锁定,1:已锁定)

(3)PWD-DENY 登录密码是否禁用(0:允许密码登录, 1:禁用密码登录)

(4)LAST-LOGIN 最近一次登录日期

(5)GECOS 用户的其它信息

四、getent

从管理数据库中获取条目。

1、getent passwd

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

2、getent hosts

# 获取 所有 主机信息
getent hosts
# 根据 IP地址 查找
getent hosts IP地址
 
# 根据 域名 查找
getent hosts 域名

3、getent services

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

五、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所有变量



相关推荐

1、/etc/passwd 系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作。 每一行代表一个账号,每一行使用“:”分隔开,共七个字段。 root:x:0:0:r

一、概述 1、ssh的安全验证 (1)基于账号和密码来验证登录。 (2)基于密钥 2、sshd的配置 sshd的配置文件是/etc/ssh/sshd_config port 22 默认的sshd

一、概述 在Linux内核中,smp_setup_processor_id 函数是在系统引导期间,特别是在多处理器系统中用于设置当前处理器ID的函数。这个函数在早期的系统初始化代码中调用,其目的是确定

一、概述 在Linux内核中,控制组(cgroups)是一个功能,它允许内核对进程进行分组,并对这些分组施加不同类型的资源限制和监控。控制组可以用来限制资源使用(如CPU时间、系统内存、网络带宽等),

一、概述 1、功能 在Linux系统下获取有关硬件方面的信息。dmidecode的作用是将DMI数据库中的信息解码,以可读的文本方式显示。由于DMI信息可以人为修改,因此里面的信息不一定是系统准确的信

pid文件的作用 防止启动多个进程副本。 pid文件的原理 进程运行后会给.pid文件加一个文件锁,只有获得该锁的进程才有写入权限(F_WRLC

一、概述 1、为什么Linus不使用GPLv3 在 PC 上,只要你得到了某个程序的源代码,就可以自行编译生成二进制程序,然后替换掉原有的二进制程序,你的程序自由很容易得到保证。然而 iPod、iPh

说明:这种方式只是用于方便阅读代码,因为可以在源代间快速索引跳跃。但是最后可能会有一些warning,可以不必关心,如果是强迫症,可以使用下面这种方式来去掉。

一、概述 在Linux系统中,/usr/bin和/usr/local/bin是两个常见的目录,用于存放可执行文件(二进制文件)。 很多应用都安装在/usr/local下面,先看一下automake工具

  一、概述 vmstat命令是最常见的Linux/Unix监控工具,可以监控给定时间间隔服务器的CPU使用率、内存使用、IO情况。相比top命令,可以查看到整个机器的CPU、内存、IO的使用情况,而