如何检查Unix中的用户列表
时间:2020-01-09 10:37:39 来源:igfitidea点击:
如何使用命令行选项在Unix操作系统中查看系统用户?
密码文件/etc/passwd包含每个用户帐户一行。
passwd文件是密码信息的本地来源。
出于安全原因,某些系统将加密的密码存储在单独的文件中。
例如,在FreeBSD上,您具有/etc/master.passwd;在Linux上,您具有/etc/shadow文件。
/etc/group文件是组信息/成员资格的本地来源。
本教程说明了如何检查Unix操作系统中的用户列表,例如macOS,FreeBSD,OpenBSD,NetBSD,类Unix系统。
用于检查Unix中用户列表的命令
在FreeBSD/OpenBSD/NetBSD和许多其他类似Unix的系统上,只需键入以下cat命令/more命令/less命令即可获取所有用户帐户的列表:
$ cat /etc/passwd $ more /etc/passwd $ less /etc/passwd
输出示例:
了解文件格式
考虑最后一行:
vnstat:*:284:284:vnStat Network Monitor:/nonexistent:/usr/sbin/nologin
其中:
vnstat
用户名*
加密的密码存储在一个单独的文件中284
UID(用户ID)284
GID(组ID)vnStat Network Monitor
有关用户的一般信息/nonexistent
用户主目录/usr/sbin/nologin
用户登录shell
如何只显示用户名列表
使用cut命令,如下所示:
$ cut -d: -f1 /etc/passwd
或使用awk命令:
$ awk -F':' '{ print }' /etc/passwd
输出示例:
root daemon operator bin build sshd .... _iscsid _smtpq _file _radiusd _eigrpd _vmd _tftp_proxy _ftp_proxy _sndiop _syspatch _slaacd nobody Hyman
如何搜索给定的用户名,例如Hyman
使用grep命令,如下所示:
$ grep '^userNameHere' /etc/passwd $ grep '^Hyman' /etc/passwd
输出示例:
Hyman:*:1001:1001:Hyman:/home/Hyman:/bin/tcsh
如何使用getent命令找出用户列表
要从管理数据库(例如/etc/passwd)中获取条目,请使用getent命令,如下所示:
$ getent passwd $ getent passwd | more $ getent passwd | grep Hyman
关于macOS Unix用户的说明
如果您使用的是macOS,请尝试使用以下命令检查Unix cli中的用户列表(打开"终端"应用程序并键入以下bash命令):
$ dscl . list /Users
或者
$ dscacheutil -q user
dscl是用于在Directory Service目录节点上进行操作的通用实用程序。
如何查找哪些Unix用户已登录以及他们在做什么
键入以下w命令/who命令:
$ w
或者
$ who
如何查看服务器上可用的组列表?
键入以下任一命令:
$ more /etc/group $ less /etc/group $ grep Hyman /etc/group
使用logins命令显示Unix帐户信息
logins命令显示有关用户和系统帐户的信息。
您所要做的就是键入以下命令:
$ logins
root 0 wheel 0 Charlie & toor 0 wheel 0 Bourne-again Superuser daemon 1 daemon 1 Owner of many system processes operator 2 operator 5 System & bin 3 bin 7 Binaries Commands and Source tty 4 nogroup 65533 Tty Sandbox kmem 5 nogroup 65533 KMem Sandbox games 7 games 13 Games pseudo-user news 8 news 8 News Subsystem man 9 man 9 Mister Man Pages sshd 22 sshd 22 Secure Shell Daemon smmsp 25 smmsp 25 Sendmail Submission User mailnull 26 mailnull 26 Sendmail Default User bind 53 bind 53 Bind Sandbox unbound 59 unbound 59 Unbound DNS Resolver proxy 62 proxy 62 Packet Filter pseudo-user _pflogd 64 _pflogd 64 pflogd privsep user _dhcp 65 _dhcp 65 dhcp programs uucp 66 uucp 66 UUCP pseudo-user pop 68 mail 6 Post Office Owner auditdistd 78 audit 77 Auditdistd unprivileged user www 80 www 80 World Wide Web Owner _ypldap 160 _ypldap 160 YP LDAP unprivileged user hast 845 hast 845 HAST unprivileged user tests 977 tests 977 Unprivileged user for tests Hyman 1001 Hyman 1001 Hyman Gite nobody 65534 nobody 65534 Unprivileged user
要获取有关密码更改和用户帐户到期时间的信息,请运行:
$ logins -a
仅查找和显示有关汤姆和杰里帐户的信息:
$ logins -l userName $ logins -l tom,jerry
是否想查看没有密码的Unix用户帐户?
传递-p选项:
$ logins -p
最后,我们可以看到有关每个帐户主目录和shell程序的信息,例如csh,ksh,bash等:
$ logins -x $ logins -x -l Hyman
Hyman 1001 Hyman 1001 Hyman Gite /home/Hyman /bin/tcsh