# 15.10. `getpass` — Portable password input

The `getpass` module provides two functions:

`getpass.``getpass`([prompt[, stream]])

  Prompt the user for a password without echoing. The user is prompted using the string prompt, which defaults to `'Password: '`. On Unix, the prompt is written to the file-like object stream. stream defaults to the controlling terminal (/dev/tty) or if that is unavailable to `sys.stderr` (this argument is ignored on Windows).

  If echo free input is unavailable getpass() falls back to printing a warning message to stream and reading from `sys.stdin` and issuing a `GetPassWarning`.

  Availability: Macintosh, Unix, Windows.

  Changed in version 2.5: The stream parameter was added.

  Changed in version 2.6: On Unix it defaults to using /dev/tty before falling back to `sys.stdin` and `sys.stderr`.

  Note

  If you call getpass from within IDLE, the input may be done in the terminal you launched IDLE from rather than the idle window itself.

exception `getpass.``GetPassWarning`

  A `UserWarning` subclass issued when password input may be echoed.

`getpass.``getuser`()

  Return the “login name” of the user. Availability: Unix, Windows.

  This function checks the environment variables `LOGNAME`, `USER`, `LNAME` and `USERNAME`, in order, and returns the value of the first one which is set to a non-empty string. If none are set, the login name from the password database is returned on systems which support the `pwd` module, otherwise, an exception is raised.