Скажите, существует ли данный логин в Linux с использованием Python - PullRequest
15 голосов
/ 29 марта 2010

В Python под Linux, какой самый простой способ проверить существование пользователя, учитывая его / ее логин?

Что-нибудь лучше, чем ввести 'ls ~ login-name' и проверить код выхода?

А если работает под Windows?

Ответы [ 5 ]

24 голосов
/ 02 марта 2013

Этот ответ основан на ответе Брайана . Добавляет необходимый try...except блок.

Проверьте, существует ли пользователь:

import pwd

try:
    pwd.getpwnam('someusr')
except KeyError:
    print('User someusr does not exist.')

Проверьте, существует ли группа:

import grp

try:
    grp.getgrnam('somegrp')
except KeyError:
    print('Group somegrp does not exist.') 
9 голосов
/ 29 марта 2010

Чтобы посмотреть мой идентификатор пользователя (bagnew) в Unix:

import pwd
pw = pwd.getpwnam("bagnew")
uid = pw.pw_uid

Подробнее см. В модуле pwd .

2 голосов
/ 30 марта 2010

Используя pwd, вы можете получить список всех доступных записей пользователя, используя pwd.getpwall (). Это может работать, если вам не нравится try: / кроме: блоков.

import pwd

username = "zomobiba"
usernames = [x[0] for x in pwd.getpwall()]
if username in usernames:
    print("Yay")
0 голосов
/ 02 марта 2013

Аналогично этому ответу , я бы сделал это:

>>> import pwd
>>> 'tshepang' in [entry.pw_name for entry in pwd.getpwall()]
True
0 голосов
/ 29 марта 2010

Я бы проанализировал / etc / passwd для данного имени пользователя. Пользователи могут не обязательно иметь homedir's.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...