获取Mac和Linux机器上的本地用户
我写了一个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