Wenn Sie die Dokumentation zum grp-Modul lesen, werden Sie feststellen, dass grp.getgrnam(groupname) einen Eintrag aus der Gruppendatenbank zurückgibt, der ein Tupel-ähnliches Objekt ist. Sie können entweder nach Index oder nach Attribut auf die Informationen zugreifen:
>>> 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 (normalerweise leer, wenn eine Schattendatei verwendet wird, ist es ein Dummy-Wert) und alle Namen der Gruppenmitglieder. Dies funktioniert auf jedem Unix-System, einschließlich meines Mac OS X-Laptops:
>>> 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, um Einträge per gid zu erhalten, und wie Sie entdeckt haben, eine Methode, um alle Einträge in der Datenbank zu durchlaufen:
>>> grp.getgrgid(80)
('admin', '*', 80, ['root', 'admin', 'mj'])
>>> len(grp.getgrall())
73
Nicht zuletzt bietet Python in den Modulen pwd und spwd, die eine ähnliche API haben, ähnliche Funktionen zum Abrufen von Informationen zu den Kennwort- und Shadow-Dateien.
Siehe grp.getgrnam(name)
:
grp.getgrnam(name)
Gibt den Gruppendatenbankeintrag für den angegebenen Gruppennamen zurück. KeyError wird ausgelöst, wenn der angeforderte Eintrag nicht gefunden werden kann.
Gruppendatenbankeinträge werden als Tupel-ähnliches Objekt gemeldet, dessen Attribute den Mitgliedern der Gruppenstruktur entsprechen:
Index Attribute Meaning
0 gr_name the name of the group
1 gr_passwd the (encrypted) group password; often empty
2 gr_gid the numerical group ID
3 gr_mem all the group member’s user names
Die numerische Gruppen-ID steht an Index 2, bzw. vorletztem, oder dem Attribut gr_gid
.
GID von root
ist 0:
>>> grp.getgrnam('root')
('root', 'x', 0, ['root'])
>>> grp.getgrnam('root')[-2]
0
>>> grp.getgrnam('root').gr_gid
0
>>>