/usr/bin/login
システム上でセッションを開く
SYNOPSIS
- login [-p] [-h host] [username] [ENV=VAR...]
- login [-p] [-h host] -f username
- login [-p] -r host
DESCRIPTION
ログインプログラムは、システムとの新しいセッションを確立するために使用される。通常、ユーザーの端末のlogin:プロンプトに応答することで自動的に呼び出される。loginはシェルにとって特別であり、サブプロセスとして呼び出されることはない。シェルから呼び出された場合、loginはexec loginとして実行されるべきで、これによりユーザーは現在のシェルから終了する(したがって、新しくログインしたユーザーは呼び出し元のセッションに戻ることができない)。ログインシェル以外のシェルからloginを実行しようとすると、エラーメッセージが表示される。
その後、ユーザーは必要に応じてパスワードの入力を求められる。パスワードの漏洩を防ぐため、エコーは無効化されている。ログインが終了し、通信リンクが切断されるまで、わずかな回数しかパスワードの失敗が許されない。
アカウントのパスワードエージングが有効になっている場合、先に進む前に新しいパスワードの入力を求められることがあります。続行する前に、古いパスワードと新しいパスワードの入力を強制される。より詳細な情報は passwd を参照すること。
ユーザーIDとグループIDは、/etc/passwdファイル内の値に従って設定される。$HOME、$SHELL、$PATH、$LOGNAME、$MAILの値は、パスワード入力の適切なフィールドに 従って設定される。ulimit、umask、niceの値も、GECOSフィールドのエントリに従って設定されるかもしれない。
インストールによっては、環境変数 $TERM が /etc/ttytype で指定された tty ラインのターミナル・タイプに初期化されることがある。
コマンド・インタープリターの初期化スクリプトも実行されるかもしれない。この機能の詳細については、適切なマニュアルのセクションを参照すること。
サブシステムのログインは、ログインシェルの最初の文字として「*」が存在することで示される。指定されたホームディレクトリは、ユーザが実際にログインする新しいファイルシステムのルートとして使用される。
ログインプログラムは、utmp ファイルからユーザーを削除する責任はない。ターミナルセッションの見かけ上の所有権を整理するのは、 getty と init の責任である。シェルプロンプトから exec なしで login を使用した場合、「サブセッション」からログアウトした後も、使用したユーザはログインしているように見える。
OPTIONS
- -f
- ユーザが事前に認証されている場合は、認証を行わない。
- 注:この場合、ユーザ名は必須である。
- -h
- このログインのためのリモートホストの名前。
- -p
- 環境を保持する。
- -r
- rlogin の自動ログインプロトコルを実行する。
- -r、-h、-f オプションは、root から login が起動されたときのみ使用される。
CAVEATS
このバージョンのログインには多くのコンパイルオプションがあるが、特定のサイトで使用されているのはそのうちの一部だけである。
ファイルの位置は、システム構成の違いに左右される。
ログインプログラムは、utmp ファイルからユーザを削除する責任はない。ターミナルセッションの見かけ上の所有権を整理するのは、 getty と init の責任である。シェルプロンプトから exec なしで login を使用した場合、「サブセッション」からログアウトした後も、使用したユーザはログインしているように見える。
どのプログラムでもそうであるが、loginの外観はごまかすことができる。信頼できないユーザがマシンに物理的にアクセスできる場合、攻撃者はこれを利用して、次にマシンの前に座ろうとする人のパスワードを入手することができる。Linux では、SAK メカニズムを利用することで、ユーザーが信頼できるパスを開始し、この種の攻撃を防ぐことができる。
CONFIGURATION
/etc/login.defs にある以下の設定変数により、本ツールの動作が変化する:
- CONSOLE_GROUPS (string)
- コンソールでログインするときに (CONSOLE 設定で決定される) ユーザーの補足グループセットに追加するグループのリストである。デフォルトはnoneである。
- 注意深く使用すること - コンソールでログインしていないときでも、ユーザーがこれらのグループへの永続的なアクセスを得ることができる可能性がある。
- DEFAULT_HOME (boolean)
- ホームディレクトリにcdできない場合に、ログインを許可するかどうかを示す。デフォルトはnoである。
- yesに設定されると、ユーザーはホームディレクトリにcdできない場合、ルート(/)ディレクトリにログインするようになる。
- ENV_PATH (string)
- 設定された場合、一般ユーザーのログイン時にPATH環境変数を定義するために使用されます。値は、コロンで区切られたパスのリスト(例:/bin:/usr/bin)で、PATH=を前に置くことができる。 デフォルト値は、PATH=/bin:/usr/binである。
- ENV_SUPATH (string)
- 設定された場合、スーパーユーザのログイン時にPATH環境変数を定義するために使用される。値は、コロンで区切られたパスのリスト(たとえば、/sbin:/bin:/usr/bin:/usr/bin)で、PATH=を前に置くことができる。 デフォルト値はPATH=/sbin:/bin:/usr/sbin:/usr/bin である。
- ERASECHAR (number)
- ターミナル ERASE キャラクター (010 = backspace, 0177 = DEL).
- 値は、
"0"
を前につけることで8進数、"0x"
を前につけることで、16進数にすることができる。
- FAIL_DELAY (number)
- ログイン失敗後、再試行前に指定秒数ディレイされる
- FAKE_SHELL (string)
- 設定した場合、ログインは、/etc/passwdで指定されたユーザーのシェルの代わりに、このシェルを実行する。
- HUSHLOGIN_FILE (string)
- 定義された場合、このファイルは、ログインシーケンス中のすべての通常のやりとりを抑制することができる。フルパス名が指定された場合、そのファイル中にユーザー名またはシェルがあれば、ハッシュドモードが有効になる。フルパスでない場合、そのファイルがユーザーのホームディレクトリに存在すれば、ハッシュドモードが有効になる。
- KILLCHAR (number)
- ターミナルのKILLキャラクター (025 = CTRL/U).
- 値は、
"0"
を前につけることで8進数、"0x"
を前につけることで、16進数にすることができる。
- LOGIN_RETRIES (number)
- パスワードが不正な場合にログインを再試行する回数の最大値。
- デフォルトの pam_unix モジュールには 3 回の再試行が組み込まれているので、 これは PAM によって上書きされる可能性が高い。しかし、これは PAM_MAXTRIES を強制しない認証モジュールを使用している場合の安全な代替手段である。
- LOGIN_TIMEOUT (number)
- ログインにかかる最大時間(秒)。
- LOG_OK_LOGINS (boolean)
- ログイン成功のログを有効にする。
- LOG_UNKFAIL_ENAB (boolean)
- ログイン失敗の記録時に、不明なユーザー名を表示できるようにした。
Note: logging unknown usernames may be a security issue if an user enter her password instead of her login name.
- TTYGROUP (string), TTYPERM (string)
The terminal permissions: the login tty will be owned by the TTYGROUP group, and the permissions will be set to TTYPERM.
By default, the ownership of the terminal is set to the user's primary group and the permissions are set to 0600.
TTYGROUP can be either the name of a group or a numeric group identifier.
If you have a write program which is "setgid" to a special group which owns the terminals, define TTYGROUP to the group number and TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign TTYPERM to either 622 or 600.
- TTYTYPE_FILE (string)
If defined, file which maps tty line to TERM environment parameter. Each line of the file is in a format something like "vt100 tty01".
- USERGROUPS_ENAB (boolean)
If set to yes, userdel will remove the user's group if it contains no more members, and useradd will create by default a group with the name of the user.
FILES
- /var/run/utmp
List of current login sessions.
- /var/log/wtmp
List of previous login sessions.
User account information.
Secure user account information.
System message of the day file.
Prevent non-root users from logging in.
List of terminal types.
- $HOME/.hushlogin
Suppress printing of system messages.
Shadow password suite configuration.
SEE ALSO
mail, passwd, sh, su, login.defs, nologin, passwd, securetty, getty
External link
この記事は、Debianのmanpageの項目を翻訳一部改変しております。 |