Wenn Sie lesen die grp module documentation Sie, dass grp.getgrnam sehen werden (Gruppenname) wird ein Eintrag aus der Gruppe Datenbank zurückgeben, die ein Tupel artiges Objekt ist. Sie können entweder Zugriff auf die Informationen über den Index oder Attribut:
>>> import grp
>>> groupinfo = grp.getgrnam('root')
>>> print groupinfo[2]
0
>>> print groupinfo.gr_gid
0
Andere Einträge sind der Name, das verschlüsselte Passwort und alle Gruppenmitglieder (in der Regel leer, wenn eine Schattendatei verwendet wird, wird es ein Dummy-Wert) Namen. Dies funktioniert auf jedem Unix-System, einschließlich meinem Mac OS X Laptop:
>>> import grp
>>> admin = grp.getgrnam('admin')
>>> admin
('admin', '*', 80, ['root', 'admin', 'mj'])
>>> admin.gr_name
'admin'
>>> admin.gr_gid
80
>>> admin.gr_mem
['root', 'admin', 'mj']
Das Modul bietet auch eine Methode Einträge von gid zu bekommen, und wie Sie entdeckt, eine Methode, um eine Schleife über alle Einträge in der Datenbank:
>>> grp.getgrgid(80)
('admin', '*', 80, ['root', 'admin', 'mj'])
>>> len(grp.getgrall())
73
Last but not least bietet python ähnliche Funktionalität Informationen über das Passwort und Schattendateien zu bekommen, in dem pwd und spwd Module, die eine ähnliche API haben.
Beachten Sie, dass einige (große) Systeme mehrere Unix-Gruppen mit derselben GID, aber einem anderen Namen haben, da es eine Begrenzung für die Anzahl der Mitglieder einer Unix-Gruppe gibt. Beispiel: 'admin',' admin2', 'admin3', usw. Das ist Ihnen vielleicht nicht bewusst, weil Dateien mit ihrer numerischen UID/GID gespeichert werden und Tools wie 'ls' die GID nachschlagen und den ersten gefundenen Namen anzeigen, der in meinem Beispiel 'admin' wäre. So können Sie überrascht sein zu finden, ein bestimmtes Benutzerkonto ist nicht in der Gruppe "admin", aber eigentlich der "admin2" oder andere Alias. Sie müssen alle Gruppen nach GID filtern, um Aliase AFAICT zu finden. – RobM