返回
Linux系统中实时用户探寻:一行指令,尽揽真相
后端
2023-10-23 07:41:37
Linux系统中的用户类型
在Linux系统中,用户类型主要分为以下三类:
-
超级用户 (UID为0):即root用户,拥有最高权限,可以执行任何操作。
-
系统用户 (UID大于0小于1000):这些用户是系统预定义的用户,用于运行系统服务和守护进程。
-
普通用户 (UID大于1000):这些用户是普通用户,拥有有限的权限,只能执行分配给他们的任务。
一行指令找出Linux系统中所有真实用户
要找出Linux系统中所有真实用户,可以运行以下指令:
who | grep -v 'pts/' | awk '{print $1}' | sort | uniq
以下是该指令的分解说明:
-
who :此指令列出所有已登录用户的详细信息。
-
grep -v 'pts/' :此指令过滤掉伪终端(pty)用户,因为这些用户不是真实用户。
-
awk '{print $1}' :此指令只提取用户名。
-
sort :此指令对用户名进行排序。
-
uniq :此指令去除重复的用户名。
执行上述指令后,您将得到一个包含所有真实用户名的列表。
其他方法找出Linux系统中所有真实用户
除了上述指令之外,还可以使用以下方法找出Linux系统中所有真实用户:
- grep :可以使用grep指令过滤出/etc/passwd文件中所有真实用户的行。
grep -v '/bin/false' /etc/passwd | cut -d':' -f1
- awk :可以使用awk指令从/etc/passwd文件中提取所有真实用户的用户名。
awk -F':' '{if ($7 != "/bin/false") print $1}' /etc/passwd
- cut :可以使用cut指令从/etc/passwd文件中提取所有真实用户的用户名。
cut -d':' -f1 /etc/passwd | grep -v '/bin/false'
- find + xargs :可以使用find指令查找所有真实用户的家目录,然后使用xargs指令将这些家目录传递给grep指令,过滤出所有真实用户的用户名。
find /home -maxdepth 1 -type d -exec grep -l '^[^#]' {}/.* \; | xargs -I {} basename {}
- w :可以使用w指令列出所有已登录用户的详细信息,然后使用grep指令过滤掉伪终端(pty)用户。
w | grep -v 'pts/' | awk '{print $1}' | sort | uniq
- finger :可以使用finger指令获取所有真实用户的详细信息,然后使用grep指令过滤掉伪终端(pty)用户。
finger | grep -v 'pts/' | awk '{print $1}' | sort | uniq
- last :可以使用last指令列出所有曾经登录过系统的用户的详细信息,然后使用grep指令过滤掉伪终端(pty)用户。
last | grep -v 'pts/' | awk '{print $1}' | sort | uniq
结论
通过上述方法,您可以轻松找出Linux系统中所有真实用户。这些方法简单易用,并且可以在任何Linux系统上运行。