获取Mac和Linux机器上的本地用户

0 投票
1 回答
700 浏览
提问于 2025-04-17 04:29

我写了一个Python脚本,用来获取我网络上所有Windows机器的本地用户。我用了win32net这个库。现在我需要对Mac和Linux机器做同样的事情。我搜索了很久,但只找到了一大堆在我家附近聚会的Mac和Linux用户组。有没有人推荐我可以看看哪个库呢?

1 个回答

5

我觉得你最好的选择是使用POSIX标准接口,比如通过getent这个包来实现http://pypi.python.org/pypi/getent/0.1

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

撰写回答