Получить локальных пользователей с компьютеров Mac и Linux - PullRequest
0 голосов
/ 17 октября 2011

Некоторое время назад я создавал скрипт на python для извлечения всех локальных пользователей машин Windows в моей сети.Я использовал библиотеку win32net.Теперь мне нужно сделать это для компьютеров Mac и Linux.Я давно искал и до сих пор не имею ничего, кроме длинного списка групп пользователей Mac и Linux, которые встречаются вокруг моего дома.У кого-нибудь есть предлагаемая библиотека для изучения?

1 Ответ

5 голосов
/ 17 октября 2011

Я думаю, что вам лучше всего использовать POSIX стандартный интерфейс, например, getent через http://pypi.python.org/pypi/getent/0.1 пакет

getent.passwd() должен работать в значительной степенианалогично getpwent системный вызов.

EDIT : если вы делаете это удаленно, это, вероятно, означает, что вы не можете устанавливать пакеты 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...