如何检查Unix中的用户列表

时间:2019-11-20 08:52:48  来源:igfitidea点击:

Unix/Linux中如何查看所有用户?

用于检查Unix中用户列表的命令

在FreeBSD/OpenBSD/NetBSD和许多其他类似Unix的系统中:

/etc/passwd文件包含了用户名信息(出于安全原因,某些系统将加密的密码存储在单独的文件中。例如,在FreeBSD上,是/etc/master.passwd;在Linux上,是/etc/shadow文件)
/etc/group文件包含了用户组的信息。

所以通过下面的命令可以列出所有的用户账号:

$ cat /etc/passwd
$ more /etc/passwd
$ less /etc/passwd

/etc/passwd的文件格式

每行的字段数是一样的,例如

oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin

其中

  • oprofile用户名
  • x加密的密码存储在一个单独的文件中
  • 16UID(用户ID)
  • 16GID(组ID)
  • Special user account to be used by OProfile注释,描述用户的一般信息
  • /var/lib/oprofile用户主目录
  • /sbin/nologin用户登录使用的shell,nologin表示不允许登录

如何只显示用户名列表

可以使用cut命令截取:

$ cut -d: -f1 /etc/passwd

或使用awk命令截取:

$ awk -F':' '{ print }' /etc/passwd

Linux如何搜索用户名是否存在

可以使用grep命令,如下所示:

$ grep '^userNameHere' /etc/passwd
$ grep '^Hyman' /etc/passwd

输出示例:

Hyman:*:1001:1001:Hyman:/home/Hyman:/bin/tcsh

在Linux中如何查看正登录的用户以及他们的操作

执行以下w命令/who命令:

$ w

或者

$ who

如何查看系统上的用户组?

执行以下的命令之一:

$ more /etc/group
$ less /etc/group
$ grep Hyman /etc/group