我想要一个单线外壳命令或简短的bash/python脚本,该脚本将列出可以登录到该计算机的Linux服务器上的所有用户。因此,当然会排除www-data和邮件之类的用户,但是root
将是列表的一部分。
例如,此代码有效。我在这里找到了。但是我正在寻找更简单的东西。
awk -F: '$2 != "*" && $2 !~ /^!/ { print $1, " can log in" }' /etc/shadow
您可以使用此onereliner列出所有在/etc/shadow中设置密码的用户,每行:
getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:
这仅适用于本地用户,而不适用于使用LDAP数据库或其他方法。
如果您使用的是LDAP,并且想在目录中列出所有用户,则可以尝试:
getent passwd | cut -f1 -d:
尽管这将列出所有用户,包括"非用户"帐户,例如www-data
我在上找到了bash脚本,查找可以使用密码登录的Linux用户。
bash版本:
awk -F: '$2 != "*" && $2 !~ /^!/ { print $1, " can log in" }' /etc/shadow
Python版本:
users = [i.split(':') for i in open('/etc/shadow').readlines()]
print 'n'.join([i[0] for i in users if i[1] not in ('!', '*')])