我想了解系统上有哪些“普通”用户可用。一般来说,我指的是那些手动创建的,而不是像这样的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'