Модуль grp
обеспечивает доступ к базе данных групп Unix. Он доступен на всех версиях Unix.
Записи базы данных группы представляются как объект, похожий на кортеж, атрибуты которого соответствуют членам структуры группы, представленных в таблице ниже:
Индекс | Атрибут | Смысл |
0 | gr_name | Название группы |
1 | gr_passwd | групповой зашифрованный пароль; Часто пустой |
2 | gr_gid | Числовой идентификатор группы |
3 | gr_mem | Все имена пользователей группы |
Элемент кортежа gid
- это целое число, имя и пароль - строки, а список членов - список строк.
Обратите внимание, что большинство пользователей явно не указаны в качестве членов группы, согласно базе данных паролей. Проверьте обе базы данных, чтобы получить полную информацию о членстве в группах. Также обратите внимание, что gr_name
, начинающееся с '+'
или '-'
, вероятно, будет YP/NIS ссылка и может быть недоступна через функции grp.getgrgid()
или grp.getgrnam()
Если запрошенная запись не может быть найдена, то поднимается исключение KeyError
.
grp.getgrgid(gid)
:Функция grp.getgrgid()
возвращает запись базы данных группы для заданного числового идентификатора gid
группы.
grp.getgrnam(name)
:Функция grp.getgrnam()
возвращает запись базы данных группы для данного имени группы name
.
grp.getgrall()
:Функция grp.getgrall()
возвращает список всех доступных записей групп в произвольном порядке.
>>> import grp # список всех доступных записей групп >>> list_grp = grp.getgrall() >>> list_grp[-2:] # [grp.struct_group(gr_name='minidlna', # gr_passwd='x', # gr_gid=130, # gr_mem=[]), # grp.struct_group(gr_name='home', # gr_passwd='x', # gr_gid=1001, # gr_mem=[])] # запись из базы по 'gid' >>> grp.getgrgid(130) # grp.struct_group(gr_name='minidlna', # gr_passwd='x', # gr_gid=130, # gr_mem=[]) # запись из базы по названию группы >>> grp.getgrnam('home') # grp.struct_group(gr_name='home', # gr_passwd='x', # gr_gid=1001, # gr_mem=[])