Quanto segue funziona supponendo che tu sia interessato solo agli utenti locali, non funzionerà per cose come sssd
supportato da un server di catalogo (ad esempio, ldap
).
#!/usr/bin/env python
import grp, pwd
user = "myname"
groups = [g.gr_name for g in grp.getgrall() if user in g.gr_mem]
gid = pwd.getpwnam(user).pw_gid
groups.append(grp.getgrgid(gid).gr_name)
print groups
Se vuoi i gruppi dell'utente corrente.
import os, grp
[grp.getgrgid(g).gr_name for g in os.getgroups()]
os.getgroups()
restituisce l'elenco dei gid dell'utente corrente.
grp.getgrgid(g)
restituisce dettagli su un gruppo