GNU/Linux >> Linux Esercitazione >  >> Linux

ottieni l'id del gruppo per nome del gruppo (Python, Unix)

Se leggi la documentazione del modulo grp vedrai che grp.getgrnam(groupname) restituirà una voce dal database del gruppo, che è un oggetto simile a una tupla. Puoi accedere alle informazioni per indice o per attributo:

>>> import grp
>>> groupinfo = grp.getgrnam('root')
>>> print groupinfo[2]
0
>>> print groupinfo.gr_gid
0

Altre voci sono il nome, la password crittografata (di solito vuota, se si utilizza un file shadow, sarà un valore fittizio) e tutti i nomi dei membri del gruppo. Funziona bene su qualsiasi sistema Unix, incluso il mio laptop Mac OS X:

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

Il modulo offre anche un metodo per ottenere le voci tramite gid e, come hai scoperto, un metodo per eseguire il ciclo su tutte le voci nel database:

>>> grp.getgrgid(80)
('admin', '*', 80, ['root', 'admin', 'mj'])
>>> len(grp.getgrall())
73

Ultimo ma non meno importante, python offre funzionalità simili per ottenere informazioni sulla password e sui file shadow, nei moduli pwd e spwd, che hanno un'API simile.


Vedi grp.getgrnam(name) :

grp.getgrnam(name)

Restituisce la voce del database di gruppo per il nome di gruppo specificato. KeyError viene sollevato se la voce richiesta non può essere trovata.

Le voci del database di gruppo sono riportate come un oggetto simile a una tupla, i cui attributi corrispondono ai membri della struttura del gruppo:

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

L'ID del gruppo numerico è all'indice 2, o penultimo dall'ultimo, o all'attributo gr_gid .

GID di root è 0:

>>> grp.getgrnam('root')
('root', 'x', 0, ['root'])
>>> grp.getgrnam('root')[-2]
0
>>> grp.getgrnam('root').gr_gid
0
>>>

Linux
  1. Elenca i membri di un gruppo in Linux

  2. Script Python per elencare utenti e gruppi

  3. Come ottenere la dimensione di tar.gz nel file (MB) in python

  4. Il comando Linux ottiene l'id del processo Tomcat per nome

  5. Come ottenere ps per stampare il gruppo?

Esempi di comandi dello schermo:ottieni il controllo del terminale Linux / Unix

Ottieni la memoria fisica totale in Python

Come ottenere il PID in base al nome del processo?

Come posso annullare l'impostazione o eliminare una funzione bash?

Come aggiungere al gruppo quando il nome ha uno spazio?

Come posso ottenere un binario da un file .py