从Mac和Linux计算机获取本地用户

时间:2011-10-17 17:11:30

标签: python linux macos network-programming

我创建了一段python脚本,以检索网络上所有Windows机器的本地用户。我使用了win32net库。我现在需要为Mac和Linux机器执行此操作。我已经搜索了一段时间,但仍然只有一长串Mac和Linux用户组在我家附近见面。有没有人有一个建议的库来调查?

1 个答案:

答案 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