Lo siguiente funciona asumiendo que solo está interesado en usuarios locales, no funcionará para cosas como sssd
respaldado por un servidor de catálogo (por ejemplo, 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
Si desea los grupos del usuario actual.
import os, grp
[grp.getgrgid(g).gr_name for g in os.getgroups()]
os.getgroups()
devuelve la lista de gids del usuario actual.
grp.getgrgid(g)
devuelve detalles sobre un grupo