名前 | 形式 | 機能説明 | セキュリティ | オプション | 終了ステータス | ファイル | 属性 | 関連項目 | 診断 | 警告
login コマンドは、 各端末セッションの始めにユーザーをシステムに識別させるために使用します。 前のユーザーが exit コマンドを実行してログインシェルを 終了させたあとで 接続を最初に確立する際に、 システムが login を呼び出します。
login がコマンドとして呼び出された場合には、 初期コマンドインタプリタが 置き換えられる必要があります。 この方法で login を呼び出すには、初期シェルから次のように入力します。
exec login
C シェルと Korn シェルには、それぞれに login の組み込みコマンドがあります。login の組み込みコマンドと使用方法についての詳細は ksh(1) と csh(1) を参照してください。
login は、引数としてユーザー名が指定されなかった場合には そのユーザー名、 さらに必要に応じて、 ユーザー自身のパスワードを入力するよう要求します。 可能な場合、 パスワードの入力中はエコーが抑止される ので、 セッションの書き込み記録には パスワードは残りません。
ログイン手続きを誤ると、 次のメッセージが出力され、 ログインプロンプトが新しく表示されます。
Login incorrect
ログインを 5 回誤ると、 この 5 回の誤りがすべて /var/adm/loginlog に記録され (ファイルが存在する場合)、 TTY 回線は切断されます。
パスワードの有効期限を設定する (エージング) 機能が指定されている場合に、パスワードが「有効期限を過ぎてしまった」ときには (詳細は passwd(1) を参照)、ユーザーはパスワードを変更するように求められます。この時 /etc/nsswitch.conf ファイルが参照され、パスワードのレポジトリ (記録場所 ) が特定されます ( nsswitch.conf(4) を参照) 。 なお、パスワードは、以下の 5 つの定義形式でのみ更新することができます。
passwd: files
passwd: files nis
passwd: files nisplus
passwd: compat (==>NIS ファイル)
passwd: compat (==> 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 は変更できません。 これは、制限付きのシェル環境にログインしているユーザーが、 制限のない 2 番目のシェルを子プロセスとして生成するのを防ぐためです。 login は、単純な単一文字引用規則を認識します。 文字の前に ¥ (バックスラッシュ) を付けるとその文字を引用するので、 空白文字またはタブなどの文字も使用できます。
あるいは login に -p フラグをつけることによって、 現在の環境を引き渡すことができます。 このフラグをつければ、 現在定義されているすべての環境変数を、 可能であれば新しい環境に引き渡します。 このオプションを指定しても、 前に述べたように変数 PATH および SHELL を変更することはできません。環境変数の制限を 回避することはできません。 変数が両方の方法で引き渡された場合、 login の引数に指定した環境変数が 優先されます。
スーパーユーザーによるリモートログインを可能にするために、 /etc/default/login ファイルを編集し CONSOLE=/dev/console エントリの前に # ( ハッシュ記号 ) を挿入してください。 「ファイル」の項を参照してください。
login は pam(3) を使って、 認証、 アカウント管理、 セッション管理、 パスワード管理を行います。/etc/pam.conf に記述されている PAM 構成ポリシーには、login で使用するモジュールが指定されています。以下に UNIX 認証、 アカウント管理、 セッション管理、 パスワード管理モジュールを使用する login コマンド用のエントリが含まれている pam.conf ファイルの抜粋を示します。
login auth required /usr/lib/security/pam_unix.so.1 login account required /usr/lib/security/pam_unix.so.1 login session required /usr/lib/security/pam_unix.so.1 login password required /usr/lib/security/pam_unix.so.1 |
login サービスのエントリがない場合には other のサービスのエントリを 使用します。 複数の認証モジュールが記述されている場合、 複数のパスワードが必要となる可能性があります。
login が rlogind または telnetd を通じて呼び出されるときに、 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(3) の LOG_AUTH を使うかどうかを指定します。
存在していれば、ログインに失敗したことが画面上に表示され、次のログインが入力できるまでの待ち時間を秒単位で設定します。 デフォルトは 4 秒、 最小時間は 0 秒で、 最大時間は 5 秒です。
ログインを再試行する回数を設定します ( pam(3) を参照)。 デフォルトは 5 です。
次の属性については 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), admintool(1M), in.rlogind(1M), in.telnetd(1M), logins(1M), quota(1M), su(1M), syslogd(1M), useradd(1M), userdel(1M), pam(3), rcmd(3N), syslog(3), ttyname(3C), hosts.equiv(4), logindevperm(4), loginlog(4), nologin(4), nsswitch.conf(4), pam.conf(4), passwd(4), profile(4), shadow(4), utmp(4), wtmp(4), attributes(5), environ(5), pam_unix(5), termio(7I)
ユーザー名またはパスワードが一致しません。
スーパーユーザーでのログインが拒否されました。 /etc/default/login の CONSOLE を確認してください。
passwd(4) データベースに指定されているユーザーのホームディレクトリが 見つからない、またはアクセス権が間違っています。 システム管理者に問い合わせてください。
passwd(4) データベースに指定されているシェルが 実行できません。 システム管理者に問い合わせてください。
マシンがシャットダウン中で、ログインできません。
76695844 よりも大きいユーザー ID を持つユーザーにはパスワードの有効期限が適用されません。また、システムは一番最後のログイン時間を記録しません。 スーパーユーザーによるログインを不可能にするために CONSOLE を使用する場合には、 スーパーユーザーによるリモートコマンドの実行も 不可能に設定する必要があります。 詳細は、 rsh(1) 、 rcmd(3N) 、 hosts.equiv(4) を参照してください。
名前 | 形式 | 機能説明 | セキュリティ | オプション | 終了ステータス | ファイル | 属性 | 関連項目 | 診断 | 警告