getpass --- 可搬性のあるパスワード入力機構

ソースコード: Lib/getpass.py


利用可能な環境: not WASI.

このモジュールは WebAssembly では動作しないか、利用不可です。詳しくは、WebAssembly プラットフォーム を見てください。

getpass モジュールは 2 つの関数を提供します。

getpass.getpass(prompt='Password: ', stream=None, *, echo_char=None)

エコーなしでユーザーにパスワードを入力させるプロンプト。 ユーザーは prompt の文字列をプロンプトに使え、デフォルトは 'Password: ' です。 Unixではプロンプトはファイルに似たオブジェクト stream へ、必要なら replace エラーハンドラを使って出力されます。 stream のデフォルトは、制御端末(/dev/tty)か、それが利用できない場合は sys.stderr です (この引数は Windowsでは無視されます)。

echo_char 引数は、入力中の文字をどのように表示するかを制御します。 echo_char が None (デフォルト) の場合、入力は表示されません。 それ以外の場合、echo_char は表示可能な ASCII 文字 1 文字でなければならず、入力した各文字はその文字で置き換えられます。 例えば echo_char='*' を指定すると、実際の入力の代わりにアスタリスクを表示します。

もしエコーなしで入力が利用できない場合は、 getpass() は stream に警告メッセージを出力し、 sys.stdin から読み込み、 GetPassWarning 警告を発生させます。

注釈

IDLE 内から getpass() を呼び出すと、IDLE のウィンドウではなく、IDLE を起動したターミナルで入力することになる場合があります。

注釈

Unix システムで echo_char を設定すると、端末は 非カノニカルモード で動作するよう設定されます。 一般的な端末制御文字がサポートされます。

  • Ctrl+A - カーソルを行頭に移動

  • Ctrl+E - カーソルを行末に移動

  • Ctrl+K - カーソルから行末までを削除

  • Ctrl+U - 行全体を削除

  • Ctrl+W - 直前の単語を削除

  • Ctrl+V - 次の文字をそのまま挿入 (クォート)

  • Backspace/DEL - カーソルの直前の文字を削除

これらのショートカットは、termios の設定から端末の制御文字の割り当てを読み取って動作します。

バージョン 3.14 で変更: キーボード入力に視覚的なフィードバックを与える echo_char 引数が追加されました。

バージョン 3.15 で変更: Unix で空でない echo_char を使うとき、端末の制御文字の設定に従ってキーボードショートカット (カーソルの移動や行の編集を含む) を適切に処理するようになりました。

exception getpass.GetPassWarning

パスワードの入力内容がエコーされる可能性がある場合に発行される、UserWarning のサブクラスです。

getpass.getuser()

ユーザーの "ログイン名"を返します。

この関数は環境変数 LOGNAME USER LNAME USERNAME の順序でチェックして、最初の空ではない文字列が設定された値を返します。もし、なにも設定されていない場合は pwd モジュールが提供するシステム上のパスワードデータベースから返します。それ以外の場合は、 OSError が送出されます。

一般に、os.getlogin() よりもこの関数を使うことを推奨します。

バージョン 3.13 で変更: 以前は OSError だけでなく、様々な例外が送出されていました。