grp モジュールのドキュメントを読むと、 grp.getgrnam(groupname) がグループ データベースから 1 つのエントリを返すことがわかります。これはタプルのようなオブジェクトです。インデックスまたは属性で情報にアクセスできます:
>>> import grp
>>> groupinfo = grp.getgrnam('root')
>>> print groupinfo[2]
0
>>> print groupinfo.gr_gid
0
他のエントリは、名前、暗号化されたパスワード (通常は空、シャドウ ファイルを使用する場合はダミーの値)、およびすべてのグループ メンバー名です。これは、私の Mac OS X ラップトップを含む、どの Unix システムでも問題なく動作します:
>>> 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']
このモジュールは、gid によってエントリを取得する方法も提供します。また、発見したように、データベース内のすべてのエントリをループする方法も提供します。
>>> grp.getgrgid(80)
('admin', '*', 80, ['root', 'admin', 'mj'])
>>> len(grp.getgrall())
73
最後になりましたが、python は、同様の API を持つ pwd および spwd モジュールで、パスワードおよびシャドウ ファイルに関する情報を取得する同様の機能を提供します。
grp.getgrnam(name)
を参照 :
grp.getgrnam(name)
指定されたグループ名のグループ データベース エントリを返します。要求されたエントリが見つからない場合、KeyError が発生します。
グループ データベース エントリは、グループ構造のメンバーに対応する属性を持つタプルのようなオブジェクトとして報告されます。
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
数値グループ ID は、インデックス 2、最後から 2 番目、または属性 gr_gid
にあります。 .
root
の GID 0:
>>> grp.getgrnam('root')
('root', 'x', 0, ['root'])
>>> grp.getgrnam('root')[-2]
0
>>> grp.getgrnam('root').gr_gid
0
>>>