如何检查系统上有哪些“普通”用户?

如何检查系统上有哪些“普通”用户?

我想了解系统上有哪些“普通”用户可用。一般来说,我指的是那些手动创建的,而不是像这样的sshd或者通用数据管理

答案1

grep UID_MIN /etc/login.defs。然后getent passwd查看哪些用户的 UID >= 上面的 UID_MIN 值。

说明:每当手动添加用户时,它都会从 login.defs 中获取第一个可用的 UID >= UID_MIN 值(除非手动指定 UID)

答案2

通常,“普通用户”被分配的用户 ID >= 1000。如果您的系统出现这种情况,则可以执行以下操作:

awk -F: '{if ($3 > 999) print $1}' /etc/passwd

答案3

我认为没有办法判断哪些用户是“手动创建”的。也许您能做的最好的事情就是寻找具有有效 shell 的用户,因为通常系统用户(如 sshd 和 gdm)具有类似/bin/false和的 shell/sbin/nologin来阻止登录。有效 shell 的列表位于 中/etc/shells,因此您可以使用grep这些 shell 之一来获取用户列表:

$ grep -f /etc/shells /etc/passwd

如果您只想要用户名:

$ grep -f /etc/shells /etc/passwd | cut -d: -f1

答案4

ls -l /home

但这也不是最可靠的来源。

如果一旦登录:

lastlog | grep -v 'Never logged in'

相关内容