【问题标题】:Get local users from Mac and Linux machines从 Mac 和 Linux 机器获取本地用户
【发布时间】:2011-10-17 17:11:29
【问题描述】:
我创建了一个 python 脚本来检索我网络上 Windows 机器的所有本地用户。我使用了 win32net 库。我现在需要为 Mac 和 Linux 机器执行此操作。我已经搜索了一段时间,但仍然只有一长串在我家附近聚会的 Mac 和 Linux 用户组。有人有推荐的图书馆吗?
【问题讨论】:
标签:
python
linux
macos
network-programming
【解决方案1】:
我认为你最好的选择是使用 POSIX 标准接口,例如getent 通过http://pypi.python.org/pypi/getent/0.1 包
getent.passwd() 的工作方式应该与getpwent 系统调用非常相似。
编辑:如果您远程执行此操作,则可能意味着您无法在主机上安装 python 包,因此您可能只想阅读 /etc/passwd 的内容并解析它。类似的东西(假设你在路径中有ssh 命令并且你已经设置了public key authentication):
import subprocess
users = []
p = subprocess.Popen(['ssh','<host name or ip address>','cat /etc/passwd'], stdout=subprocess.PIPE)
passwd = p.stdout.readlines()
for line in passwd:
fields = line.split(':')
uid = int(fields[2])
if uid > 500 and uid < 32328
users.append(fields[0])
print users