GNU/Linux >> Tutoriels Linux >  >> Linux

obtenir l'identifiant du groupe par nom de groupe (Python, Unix)

Si vous lisez la documentation du module grp, vous verrez que grp.getgrnam(groupname) renverra une entrée de la base de données du groupe, qui est un objet de type tuple. Vous pouvez accéder aux informations soit par index, soit par attribut :

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

Les autres entrées sont le nom, le mot de passe crypté (généralement vide, si vous utilisez un fichier fantôme, ce sera une valeur fictive) et tous les noms des membres du groupe. Cela fonctionne bien sur n'importe quel système Unix, y compris mon ordinateur portable 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']

Le module propose également une méthode pour obtenir les entrées par gid, et comme vous l'avez découvert, une méthode pour boucler sur toutes les entrées de la base de données :

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

Enfin, python offre des fonctionnalités similaires pour obtenir des informations sur les fichiers de mot de passe et d'ombre, dans les modules pwd et spwd, qui ont une API similaire.


Voir grp.getgrnam(name) :

grp.getgrnam(name)

Renvoie l'entrée de la base de données de groupe pour le nom de groupe donné. KeyError est déclenché si l'entrée demandée est introuvable.

Les entrées de la base de données de groupe sont signalées sous la forme d'un objet de type tuple, dont les attributs correspondent aux membres de la structure de groupe :

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 de groupe numérique est à l'index 2, ou 2e à partir du dernier, ou l'attribut gr_gid .

GID de root vaut 0 :

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

Linux
  1. Modifier la propriété du groupe des liens symboliques sous Unix ou Linux

  2. Comment obtenir la largeur de la fenêtre de la console Linux en Python

  3. Obtenez le temps de création de fichier avec Python sur Linux

  4. Comment obtenir la taille de tar.gz dans le fichier (Mo) en python

  5. Comment puis-je obtenir le nom d'utilisateur dans un Makefile ?

Exemples de commandes d'écran :prendre le contrôle du terminal Linux/Unix

Script Python pour lister les utilisateurs et les groupes

Obtenez des deltas de souris en utilisant Python ! (sous Linux)

La commande Linux obtient l'identifiant du processus tomcat par son nom

Comment puis-je obtenir un binaire à partir d'un fichier .py

Comment obtenir le nom de l'utilisateur à partir de l'uid