GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gruppen-ID nach Gruppenname abrufen (Python, Unix)

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
>>>

Linux
  1. So erhalten Sie die Fensterbreite der Linux-Konsole in Python

  2. Holen Sie sich die Dateierstellungszeit mit Python unter Linux

  3. Linux-Befehl Tomcat-Prozess-ID nach Namen abrufen

  4. Holen Sie sich den gesamten physischen Speicher in Python

  5. Wie kann ich eine Binärdatei aus einer .py-Datei erhalten?

Ändern Sie den Gruppenbesitz von symbolischen Links in Unix oder Linux

Beispiele für Bildschirmbefehle:Holen Sie sich die Kontrolle über das Linux / Unix-Terminal

Wie bekomme ich ps zur Druckgruppe?

Wie bekomme ich PID nach Prozessname?

Wie kann ich eine Bash-Funktion deaktivieren oder entfernen?

Wie füge ich einer Gruppe hinzu, wenn der Name ein Leerzeichen enthält?