GNU/Linux >> Linux の 問題 >  >> Linux

グループ名でグループ ID を取得 (Python、Unix)

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
>>>

Linux
  1. Python で Linux コンソール ウィンドウの幅を取得する方法

  2. LinuxでPythonを使用してファイル作成時間を取得する

  3. Pythonで(MB)ファイルのtar.gzのサイズを取得する方法

  1. Makefile でユーザー名を取得するにはどうすればよいですか?

  2. Python:1 つのユーザー名のグループ ID を取得する方法 ( id -Gn など)

  3. .py ファイルからバイナリを取得するにはどうすればよいですか

  1. Linuxのグループのメンバーを一覧表示する

  2. ユーザーとグループを一覧表示する Python スクリプト

  3. uidからユーザー名を取得する方法