名前 | 形式 | 機能説明 | セキュリティ | オプション | 終了ステータス | ファイル | 属性 | 関連項目 | 診断 | 警告 | 注意事項
login コマンドは、 各端末セッションの開始時に使用するコマンドです。このコマンドを使用して、システムにユーザーの識別情報を提示します。 login コマンドは、あるユーザーが exit コマンドを実行してログインシェルを 終了させたあと、次のユーザーが最初に接続を確立するときに、 システムによって呼び出されます。
login がコマンドとして呼び出された場合には、 初期コマンドインタプリタが 置き換えられる必要があります。 この方法で login を呼び出すには、初期シェルから次のように入力します。
exec login |
C シェルと Korn シェルには、それぞれに login の組み込みコマンドがあります。login の組み込みコマンドと使用方法の詳細については ksh(1) と csh(1) を参照してください。
引数としてユーザー名を指定しないと、login は、ユーザー名とユーザーパスワード (必要な場合) の入力を求めます。 可能な場合、 パスワードの入力中はエコーが抑止されます。このため、 セッションの書き込み記録にパスワードが残ってしまうことはありません。
ログイン手続きの際に入力を誤ると、 次のメッセージが出力され、 新しいログインプロンプトが表示されます。
Login incorrect
ログイン手続きに 5 回失敗すると、 これがすべて /var/adm/loginlog ファイルに記録され (ファイルが存在しない場合もある)、 TTY 回線が切断されます。
パスワードの有効期限を設定する機能が有効になっている場合に、パスワードが有効期限を過ぎてしまうと、ユーザーはパスワードの変更を求められます (詳細については passwd(1) を参照)。このとき、パスワードの記録場所を特定するために、/etc/nsswitch.conf ファイルが参照されます ( nsswitch.conf(4) を参照) 。 なお、パスワードの更新は、次の 5 つの形式でのみ実行できます。
passwd: files
passwd: files nis
passwd: files nisplus
passwd: compat (==> files NIS)
passwd: compat (==> files NIS+)
passwd_compat: nisplus
いずれの形式にも合っていないと、 passwd(1) が異常終了するため、システムにログインできません。 一定時間内に正常にログインできなかった場合は、 メッセージで通知されることなく接続が解除されることがあります。
正常にログインすると、 アカウンティングファイルが更新され、 デバイスの所有者、グループ、アクセス権が /etc/logindevperm ファイルの内容に従って設定され、 最終ログイン時刻が表示されます ( logindevperm(4) を参照 ) 。
ユーザー ID、 グループ ID、 補助グループリスト、 作業用ディレクトリは初期化され、 コマンドインタプリタ (通常 ksh) が起動されます。
HOME=your-login-directory LOGNAME=your-login-name PATH=/usr/bin: SHELL=last-field-of-passwd-entry MAIL=/var/mail/your-login-name TZ=timezone-specification
Bourne シェルや Korn シェルでログインする場合は、それぞれ /etc/profile と $HOME/.profile が実行されます (ファイルが存在しない場合もある)。 一方、C シェルでログインする場合は、/etc/.login 、 $HOME/.cshrc 、 $HOME/.login が実行されます。 デフォルトの /etc/profile ファイルと /etc/.login ファイルは、ディスク容量の確認 (quota(1M) 参照)、/etc/motd の表示、メールの確認を行います。$HOME/.hushlogin ファイルが存在する場合は、メッセージは何も表示されません。コマンドインタプリタ名は、– の後にインタプリタのパス名の最後の構成要素を付けたものになります (例 : –sh)。
パスワードファイルの login-shell フィールド (passwd(4) を参照) が空であれば、デフォルト時のコマンドインタプリタ /usr/bin/sh が使用されます。 このフィールドが アスタリスク (*) の場合は、指定のディレクトリがルートディレクトリになります。 この時点で、独自のルート構造を持つ新しいレベルで login が再実行されます。
login の実行時または login がログイン名を要求したときに login に引数を追加すると、 環境を拡張したり変更したりできます。 この引数は、 xxx または xxx=yyy という形式で指定します。= (等号) を使用しない形式の引数は、 次のように環境設定内に配置します。
Ln=xxx
このとき、n は 0 から始まる通し番号になります。この数値は、 新しい変数が必要になるたびに大きくなります。= (等号) を使用した形式の変数は、 そのまま環境設定に取り込まれます。 すでに設定が環境に取り込まれている場合に新しい変数を指定すると、前の値が新しい設定値に置き換えられます。
ただし、例外が 2 つあります。 変数 PATH と変数 SHELL は変更できません。 これは、制限付きのシェル環境にログインしているユーザーが、子プロセスとして制限のない新しいシェルを生成するのを防ぐためです。 login は、単純な単一文字引用規則を認識します。 文字の前に \ (バックスラッシュ) を付けるとその文字が引用項目になるので、 空白文字やタブなどの文字も使用できます。
login に -p フラグをつけることによって、 現在の環境を引き渡すこともできます。 このフラグにより、現在定義されているすべての環境変数が、 可能であれば新しい環境に引き渡されます。このオプションを指定しても、変数 PATH と SHELL は変更できません。環境変数の制限を 回避することはできません。 変数が両方の方法で引き渡された場合、login の引数に指定した環境変数が優先されます。
スーパーユーザーによるリモートログインを可能にするには、/etc/default/login ファイルを編集し CONSOLE=/dev/console エントリの前に # ( ハッシュ記号 ) を挿入してください。 これについては、「ファイル」の項を参照してください。
login コマンドは pam(3PAM) を使って、認証、アカウント管理、セッション管理、パスワード管理を行います。/etc/pam.conf に記述されている PAM 構成ポリシーには、login で使用するモジュールが指定されています。以下に、pam.conf ファイルの抜粋を示します。このファイルには、UNIX 認証、アカウント管理、セッション管理、パスワード管理モジュールを使用する login コマンド用のエントリが含まれています。
login auth required pam_authtok_get.so.1 login auth required pam_dhkeys.so.1 login auth required pam_unix_auth.so.1 login auth required pam_dial_auth.so.1 login account requisite pam_roles.so.1 login account required pam_projects.so.1 login account required pam_unix_account.so.1 login session required pam_unix_session.so.1
パスワード管理スタックは、以下のようになります。
other password required pam_dhkeys.so.1 other password requisite pam_authtok_get.so.1 other password requisite pam_authtok_check.so.1 other password required pam_authtok_store.so.1
login サービスのエントリがない場合は別のサービスのエントリが使用されます。認証モジュールが複数含まれている場合は、複数のパスワードが必要になることがあります。
rlogind や telnetd で login が呼び出されるときに、 PAM が使用するサービス名はそれぞれ rlogin、telnet になります。
次のオプションを指定できます。
login は、 デバイスオプション device を受け付けます。device は、 login が動作する TTY ポートのパス名とみなされます。デバイスオプションを使用すると、 login のパフォーマンスの向上が期待できます。 これは login が ttyname(3C) を呼び出す必要がなくなるからです。-d オプションは、ユーザー ID と実効ユーザー ID が root であるユーザーのみが使用できます。 その他のユーザーが -d オプションを使用すると、login は何も出力しないで終了します。
in.telnetd(1M) がリモートホストと端末タイプに関する情報を 渡すために使用します。
ログインシェルに環境変数を渡すために使用されます。
in.rlogind(1M) がリモートホストに関する情報を渡すために使用します。
各 C シェルの初期設定コマンド
ログインメッセージの抑制
C シェルユーザー用のログインコマンド
Bourne シェルユーザーと Korn シェルユーザー用のログインコマンド
ホスト名とユーザー名の組み合わせのリスト
システム全体のログインコマンド
項目またはプロジェクトの識別情報
ログインベースのデバイスアクセス権
本日のメッセージ
マシンのシャットダウン中にログインしようとするユーザーに対するメッセージ
パスワードファイル
システム全体の Bourne シェルと Korn シェルのログインコマンド
ユーザーの暗号化パスワードのリスト
ユーザーのデフォルトのコマンドインタプリタ
最終ログイン時刻
失敗したログイン試行の記録
アカウンティング
アカウンティング
ユーザー your-name 用のメールボックス
このファイル中にデフォルト値を設定 (例: TIMEZONE=EST5EDT)。次のフラグを使用
シェルの TZ 環境変数を設定 ( environ(5) を参照)
シェルの HZ 環境変数を設定
ログインのファイルサイズの制限を設定。 設定はディスクブロック単位で、デフォルトはゼロ (制限なし)
設定されていれば、スーパーユーザーは そのデバイスにのみログイン可能。ただし、rsh(1) によるリモートコマンドの実行は可能。スーパーユーザーでログインできるようにするには、この行をコメントにする
ログインに NULL 以外のパスワードが必要かどうかを指定
ログイン時に SHELL 環境変数を設定するかどうかを指定
初期シェルの PATH 変数を設定
スーパーユーザー用初期シェルの PATH 変数を設定
ログインセッションを終了するまでの待ち時間を秒単位 ( 0 から 900 の間) で設定
初期シェルのファイルモード生成マスクを設定 (umask(1) を参照)
LOG_NOTICE レべルでのスーパーユーザーによるログインすべてと LOG_CRIT レベルでの失敗したログイン試行を記録するのに syslog(3C) の LOG_AUTH
を使うかどうかを指定
存在し、かつ、ゼロより大きい場合、ログイン試行が RETRIES 回だけ失敗した後、あるいは、PAM フレームワークが PAM_ABORT を戻した後に login が待つ秒数。デフォルトは 20 秒。最小は 0 秒。最大はない
存在する場合、ログイン失敗メッセージを画面に表示するまでに待つ秒数を設定。これは PAM_ABORT 以外のログイン障害用。RETRIES に到達していない場合、あるいは、PAM フレームワークが PAM_MAXTRIES 回だけ戻されている場合、別のログイン試行が許可される。デフォルトは 4 秒。最小は 0 秒。最大は 5 秒
ログインを再試行する回数を設定 ( pam(3PAM) を参照)。 デフォルトは 5
何回ログインに失敗したら、syslog(3C) LOG_NOTICE 機能によってログインに失敗したことを通知するメッセージが記録されるかを指定する。たとえば、変数の値が 0 に設定されている場合、login は失敗したログインをすべて記録する
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWcsu |
csh(1), exit(1), ksh(1), mail(1), mailx(1), newgrp(1), passwd(1), rlogin(1), rsh(1), sh(1), shell_builtins(1), telnet(1), umask(1), in.rlogind(1M), in.telnetd(1M), logins(1M), quota(1M), su(1M), syslogd(1M), useradd(1M), userdel(1M), pam(3PAM), rcmd(3SOCKET), syslog(3C), ttyname(3C), auth_attr(4), exec_attr(4), hosts.equiv(4), issue(4), logindevperm(4), loginlog(4), nologin(4), nsswitch.conf(4), pam.conf(4), passwd(4), profile(4), shadow(4), user_attr(4), utmpx(4), wtmpx(4), attributes(5), environ(5), pam_unix_account(5), pam_unix_auth(5), pam_unix_session(5), pam_authtok_check(5), pam_authtok_get(5), pam_authtok_store(5), pam_dhkeys(5), pam_passwd_auth(5), termio(7I)
ユーザー名またはパスワードが一致しません。
スーパーユーザーでのログインが拒否されました。 /etc/default/login の CONSOLE を確認してください。
passwd(4) データベースに指定されているユーザーのホームディレクトリが 見つからないか、アクセス権が正しくありません。システム管理者に問い合わせてください。
passwd(4) データベースに指定されているシェルを実行できません。 システム管理者に問い合わせてください。
マシンがシャットダウン中で、ログインできません。
ユーザー ID が 76695844 よりも大きいユーザーには、パスワードの有効期限が適用されません。また、このユーザーの最終ログイン時刻も記録されません。 スーパーユーザーによるログインを不能にするために CONSOLE を使用する場合は、 スーパーユーザーによるリモートコマンドの実行も不能にする必要があります。 詳細については、 rsh(1)、rcmd(3SOCKET)、 hosts.equiv(4) を参照してください。
pam_unix(5) モジュールは、将来のリリースではサポートされなくなる可能性があります。同様の機能は、pam_unix_account(5)、pam_unix_auth(5)、pam_unix_session(5)、pam_authtok_check(5)、pam_authtok_get(5)、pam_authtok_store(5)、pam_dhkeys(5)、および pam_passwd_auth(5) で提供されています。
名前 | 形式 | 機能説明 | セキュリティ | オプション | 終了ステータス | ファイル | 属性 | 関連項目 | 診断 | 警告 | 注意事項