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

В Python и Linux, как получить заданный идентификатор пользователя

Существует os.getuid(), который "возвращает идентификатор пользователя текущий.". Но как узнать какой-либо идентификатор пользователя?

4b9b3361

Ответ 1

Вы можете использовать pwd.getpwnam():

In [5]: pwd.getpwnam('aix').pw_uid
Out[5]: 1004

Ответ 2

Предполагая, что вы хотите, это строка имени пользователя, связанная с идентификатором пользователя для вашей программы, попробуйте:

import os
import pwd
pwd.getpwuid( os.getuid() ).pw_name

Используйте os.geteuid(), чтобы получить эффективный uid, если это имеет значение для вас.

Используйте pw_gecos вместо pw_name, чтобы получить "настоящее имя", если оно заполнено в вашей системе.

Ответ 3

pwd:

import pwd
for p in pwd.getpwall():
    print p

pwd.struct_passwd(pw_name='_calendar', pw_passwd='*', pw_uid=93, pw_gid=93, pw_gecos='Calendar', pw_dir='/var/empty', pw_shell='/usr/bin/false')
pwd.struct_passwd(pw_name='_teamsserver', pw_passwd='*', pw_uid=94, pw_gid=94, pw_gecos='TeamsServer', pw_dir='/var/teamsserver', pw_shell='/usr/bin/false')
pwd.struct_passwd(pw_name='_update_sharing', pw_passwd='*', pw_uid=95, pw_gid=-2, pw_gecos='Update Sharing', pw_dir='/var/empty', pw_shell='/usr/bin/false')
pwd.struct_passwd(pw_name='_installer', pw_passwd='*', pw_uid=96, pw_gid=-2, pw_gecos='Installer', pw_dir='/var/empty', pw_shell='/usr/bin/false')
pwd.struct_passwd(pw_name='_atsserver', pw_passwd='*', pw_uid=97, pw_gid=97, pw_gecos='ATS Server', pw_dir='/var/empty', pw_shell='/usr/bin/false')
pwd.struct_passwd(pw_name='_ftp', pw_passwd='*', pw_uid=98, pw_gid=-2, pw_gecos='FTP Daemon', pw_dir='/var/empty', pw_shell='/usr/bin/false')

Ответ 4

Вы можете просто разобрать /etc/passwd, там он хранится.