以下は、ローカル ユーザーのみに関心があると仮定して動作します。 sssd
などの場合は動作しません。 カタログ サーバー (例: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
現在のユーザーのグループが必要な場合。
import os, grp
[grp.getgrgid(g).gr_name for g in os.getgroups()]
os.getgroups()
現在のユーザーの gid のリストを返します。
grp.getgrgid(g)
グループに関する詳細を返します