我想要一个单行 shell 命令或一个简短的 Bash/Python 脚本,它将列出 Linux 服务器上可以登录该机器的所有用户。因此,像 www-data 和 mail 这样的用户当然会被排除在外,但是 root
将是列表的一部分。
例如,此代码有效。我 found it here .但我正在寻找更简单的清洁剂。
awk -F: '$2 != "*" && $2 !~ /^!/ { print $1, " can log in" }' /etc/shadow
最佳答案
你可以使用这个 oneliner 列出所有在/etc/shadow 中设置密码的用户,每行一个:
getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:
这仅适用于本地用户,在使用 LDAP 数据库或其他方法时无效。
如果您使用的是 LDAP 并且您想要列出目录中的所有用户,您可以尝试:
getent passwd | cut -f1 -d:
不过,这将列出所有用户,包括“非用户”帐户,例如 www-data
关于python - Linux服务器列出可以登录的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13267948/