Я думаю, что вам лучше всего использовать 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