212:ユーザやグループに関する情報を得る
プロセスを実行したユーザのユーザ名を得る
プロセスを実行したユーザのユーザ名を確認するには次のようにします。 os.getuid で現在のプロセスのユーザ id を得ます。それを元に pwd.getpwuid でパスワードデータベースを調べます。
>>> import os >>> import pwd >>> pwd.getpwuid(os.getuid()).pw_name 'spam'
ユーザ情報を得る
pwd モジュールを用います。
ユーザー ID を元にパスワードデータベースにアクセスするには pwd.getpwuid を、ユーザ名を元にするならば pwd.getpwnam を使います。全ユーザを表示するには pwd.getpwall() を使います。
>>> pwd.getpwuid(1000)
('spam', 'x', 1000, 1000, 'spam...', '/home/spam', '/bin/bash')
>>> pwd.getpwnam('spam')
('spam', 'x', 1000, 1000, 'spam...', '/home/spam', '/bin/bash')
対応するユーザが見つかればタプル状のオブジェクトが返ってきます。見つからなければ KeyError? 例外が送出されます。このタプル状オブジェクトには、インデックスもしくは pw_name のような属性名でのアクセスが可能です。
>>> p = pwd.getpwuid(1000) >>> p[0] 'spam' >>> p.pw_name 'spam'
インデックス、属性名およびそれらの意味するところは Python ライブラリリファレンスの pwd を参照してください。
なお、シャドウパスワードデータベースのほうにアクセスしたい場合は spwd モジュールを使用してください。
グループ情報を得る
grp モジュールを用います。
グループ ID を元にグループデータベースにアクセスするには grp.getgrgid を、グループ名を元にするならば grp.getgrnam を使います。全グループを表示するには grp.getgrall() を使います。
これらの関数の戻り値の意味するところは Python ライブラリリファレンスの grp を参照してください。