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

iFe*_*tus 0 python linux macos network-programming

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

Kim*_*ais 5

我认为你最好的选择是使用POSIX标准接口,例如通过http://pypi.python.org/pypi/getent/0.1包的getent

getent.passwd()应该与getpwent系统调用非常类似.

编辑:如果您正在远程执行此操作,可能意味着您无法在主机上安装python包,因此您可能只想读取内容/etc/passwd并解析它.类似的东西(假设你ssh在路径中有命令并且你已经设置了公钥认证):

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
Run Code Online (Sandbox Code Playgroud)