我创建了一段python脚本,以检索网络上所有Windows机器的本地用户。我使用了win32net库。我现在需要为Mac和Linux机器执行此操作。我已经搜索了一段时间,但仍然只有一长串Mac和Linux用户组在我家附近见面。有没有人有一个建议的库来调查?
答案 0 :(得分:5)
我认为您最好的选择是使用 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