名前 | 形式 | 機能説明 | セキュリティ | オプション | 終了ステータス | ファイル | 属性 | Trusted Solars での変更点 | 関連項目 | 診断 | 警告
login コマンドは、 各端末セッションの始めにユーザーをシステムに識別させるために使用します。 前のユーザーが exit コマンドを実行してログインシェルを 終了させたあとで 接続を最初に確立する際に、 システムが login を呼び出します。
login がコマンドとして呼び出された場合には、 初期コマンドインタプリタが 置き換えられる必要があります。 この方法で login を呼び出すには、初期シェルから次のように入力します。
exec login
login は、引数としてユーザー名が指定されなかった場合には そのユーザー名、 さらに必要に応じて、 ユーザー自身のパスワードを入力するよう要求します。 可能な場合、 パスワードの入力中はエコーが抑止される ので、 セッションの書き込み記録には パスワードは残りません。
ログイン手続きを誤ると、 次のメッセージが出力され、 ログインプロンプトが新しく表示されます。
Login incorrect
ログインを 5 回誤ると、 この 5 回の誤りがすべて /var/adm/loginlog に記録され (ファイルが存在する場合)、 TTY 回線は切断されます。
パスワード有効期限が設定されていて、パスワードが古くなっている場合 (詳細は、passwd(1) を参照)、ログインは拒否され、デスクトップでログインしてパスワードを変更することを指示するメッセージが表示されます。
正常にログインすると、 アカウンティングファイルが更新され、 デバイスの所有者、グループ、アクセス権が /etc/logindevperm ファイルの内容に従って設定され、 最終ログイン時刻が表示されます ( logindevperm(4) を参照 ) 。
リモートログインの場合を除いて、login は、今回の端末セッションで使用する 機密ラベル (SL) を選択するように促します。使用が承認されていて、そのデバイスに有効なラベルを入力しなければなりません。
ユーザー ID、 グループ ID、 補助グループリスト、 作業用ディレクトリ が初期化され、 コマンドインタプリタ (通常 ksh) が起動されます。
HOME=your-login-directory LOGNAME=your-login-name PATH=/usr/bin: SHELL=last-field-of-passwd-entry MAIL=/var/mail/ TZ=timezone-specification
パスワードファイルの 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 が rlogind または telnetd を通じて呼び出されるときに、 PAM で使用されるサービス名は、 それぞれ rlogin または telnet になります。
以下のオプションを指定できます。
login デバイスオプション device を受け付けます。 device は、loginが動作する TTY ポートのパス名とみなされます。 デバイスオプションを使用すると、login のパフォーマンス向上が期待できます。 login が ttyname(3C) を呼び出す必要がなくなるからです。
リモートホストと端末タイプについての情報を 渡すために in.telnetd(1M) によって使われます。
ログインシェルに環境変数を 渡すために使われます。
リモートホストについての情報を 渡すために in.rlogind(1M) によって使われます。
rlogin を呼び出したプロセスに対して、トラステッドパスのプロセス属性をリモートホストに設定されたことを、知らせるために <in.rlogind(1M) によって使われます。
rlogin を呼び出したプロセスの UID についての情報を渡すために in.rlogind(1M) によって使われます。uid と name の両方を in.rlogind(1M) に渡した場合、 name の UIDは uid の値に一致しなければなりません。一致しない場合、ログインは拒否されます。
成功したとき、-T は 0 を返します。失敗したとき、login はゼロ以外の値を返します。
各 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 |
ログイン時にセッション用のラベルを選択するようプロンプトが表示されます (リモートログイン時は除く)。ラベルと UID に関する制限が適用されます。機能説明 セクションでこれらの制限を説明します。Trusted Solaris 環境では、2 つのオプション -T と -U が追加されます (オプション を参照)。
passwd(1), in.rlogind(1M)
csh(1), exit(1), ksh(1), mail(1), mailx(1), newgrp(1), rlogin(1), rsh(1), sh(1), shell_builtins(1), telnet(1), umask(1), in.telnetd(1M), logins(1M), su(1M), syslogd(1M), pam(3), rcmd( 3N), syslog(3), ttyname(3C), hosts.equiv(4), logindevperm(4), loginlog(4), nologin(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) を参照してください。
名前 | 形式 | 機能説明 | セキュリティ | オプション | 終了ステータス | ファイル | 属性 | Trusted Solars での変更点 | 関連項目 | 診断 | 警告