Подтвердить что ты не робот

Как проверить, существует ли пользователь в операционной системе GNU/Linux, использующей Python?

Какой самый простой способ проверить существование пользователя в операционной системе GNU/Linux с помощью Python?

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

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

4b9b3361

Ответ 1

Этот ответ основывается на ответе Брайана. Он добавляет необходимый блок 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.') 

Ответ 2

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

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

Подробнее см. pwd.

Ответ 3

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

import pwd

username = "zomobiba"
usernames = [x[0] for x in pwd.getpwall()]
if username in usernames:
    print("Yay")

Ответ 4

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

Ответ 5

Как и этот ответ, я бы сделал следующее:

>>> import pwd
>>> 'tshepang' in [entry.pw_name for entry in pwd.getpwall()]
True