web-dev-qa-db-ja.com

whoami in python

pythonプロセスが実行されているユーザーを見つける最良の方法は何ですか?

私はこれを行うことができます:

name = os.popen('whoami').read() 

しかし、それはまったく新しいプロセスを開始する必要があります。

os.environ["USER"]

動作することもありますが、環境変数が設定されない場合もあります。

37
Josh Gibson
import getpass
print getpass.getuser()

getpass モジュールのドキュメントを参照してください。

getpass.getuser()

ユーザーの「ログイン名」を返します。利用できる環境:Unix、Windows。

この関数は、環境変数LOGNAME、USER、LNAME、USERNAMEを順にチェックし、空でない文字列に設定されている最初の値を返します。何も設定されていない場合、pwdモジュールをサポートするシステムでパスワードデータベースのログイン名が返されます。それ以外の場合は、例外が発生します。

77
Ayman Hourieh

これはUnixで動作するはずです。

import os
print os.getuid() # numeric uid
import pwd
print pwd.getpwuid(os.getuid()) # full /etc/passwd info
19
user25148