【问题标题】:Get local users from Mac and Linux machines从 Mac 和 Linux 机器获取本地用户
【发布时间】:2011-10-17 17:11:29
【问题描述】:

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

【问题讨论】:

  • 这会在本地机器上运行,还是远程连接并运行?

标签: python linux macos network-programming


【解决方案1】:

我认为你最好的选择是使用 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

【讨论】:

    猜你喜欢
    • 2016-09-06
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 2012-07-25
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多