python - Linux服务器列出可以登录的用户

标签 python linux bash

我想要一个单行 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/

相关文章:

c++ - 蛇的头距离 body 几点(C++ 游戏)

linux - 松弛 curl 不起作用

linux - 将 SpecFlow 测试添加到 VSCode 中的 .NET Core 项目

bash - 无法检查 pkill 命令是否成功

python - 将行追加到现有的 pandas 数据框

Python Tkinter 可以安全地 self.quit 或 sys.exit 吗?

python - 如何将列表分成相等的部分?

bash - 使用 bash <(curl ...) 转义 Makefile 规则中的括号

bash - Docker不运行入口点脚本

python - 如何在 Cython 模块中将 #defined C 值暴露给 Python?