LOGIN(5)

名前
/etc/login.defs - loginの設定

説明
/etc/login.defs ファイルは shadow ログイン機能に対するサイト固有の設定を行うためのものである。 このファイルは必ず存在しなければならない。 このファイルが無くともシステム運用は可能であるが、おそらく望まない 結果となるだろう。

このファイルは読み取り可能なテキストファイルで、ファイル中の一行につき 一つのパラメータを設定している。 各行は設定パラメータの名前及びその値が空白で区切られたものからなる。 空行及びコメント行は無視される。 コメント行は`#'記号で始まる。記号`#'はその行での空白以外の最初の文字 でなくてはならない。

パラメータ値は四つの型を取ることが出来る: 文字列、ブール型、数、倍精度数 である。 文字列には全ての印刷可能文字を使うことが出来る。 ブール型パラメータの値は``yes''又は``no''のいずれかでなくてはならない。 未定義の、もしくは上記以外の値のブール型パラメータの値は``no''とされる。 (単精度及び倍精度)数は、十進数、(数値の前に``0''を付けた)八進数または (数値の前に``0x''を付けた)十六進数のいずれかで指定する。 単及び倍精度数パラメータの最大値は計算機に依存する。

以下に示すような設定項目がある:

CHFN_AUTH (ブール値)
    もし yes なら、 chfn と chsh プログラムはスーパーユーザが起動したのでない限り 何らかの変更を行なう前にパスワードを訊ねる。

CHFN_RESTRICT (文字列)
    このパラメータは passwd ファイルの gecos フィールドのうち、 一般ユーザが chfn を使って変更出来るフィールドを指定する。 指定する文字列は f, r, w, h の文字の任意の組み合わせで、それぞれフルネーム、部屋番号、 職場電話番号、自宅電話番号を意味する。 指定されなかった場合は、スーパーユーザだけが全ての項目を変更出来る。

CLOSE_SESSIONS (ブール値)
    pam_close_session() 呼び出しを有効にする。 通常の(pam_unix.so)セッション管理モジュールを使う場合は、これは不要である。 しかし kerberos やその他の永続的セッションモデルを用いるモジュールでは、 login は fork してシェルが終了するのを待つ必要があり、 それでセッションをクリーンアップ出来る。

CONSOLE (文字列)
    この項目を指定すると、rootがログインできるコンソールデバイスを制限する ことが出来る。 ここで指定した設定を満たさないコンソールデバイスからrootとしてログイン しようとしても拒否される。この項目の設定は二つの形式を用いることが出来、 ひとつは

        CONSOLE /etc/consoles

    の様な絶対パスを用いた指定法、 今一つは

        CONSOLE console:tty01:tty02:tty03:tty04

    の様にコロンで区切られたリストで端末線を指定する方法である。 パス名を指定する場合は、一行で一つの端末接続線を指定しなくてはならない。 このパラメータが未定義である場合や指定したファイルが存在しない場合は、 rootは全ての端末デバイスからログイン出来てしまう。 このファイルが存在しない場合や壊れている場合にはrootとしての不正なログインが 出来てしまうことになるので、このファイルはプロテクトをかけておかなくては ならない。 セキュリティが非常に重要である場合は、このようなアタックの可能性を無くす ために、コロンで区切った形式を用いなくてはならない。

CONSOLE_GROUPS (文字列)
    XXX 文書化の必要あり。

CRACKLIB_DICTPATH (文字列)
    XXX 文書化の必要あり。

DEFAULT_HOME (ブール値)
    XXX 文書化の必要あり。

DIALUPS_CHECK_ENAB (ブール値)
    値が yes で、かつ /etc/dialups ファイルが存在する場合は、このファイルで指定したダイアルアップデバイス では第二のパスワードも使用される。 このファイルにはダイアルアップ接続線のリストを以下の様に一行に一つずつ 指定しなくてはならない:

    	ttyfm01
    	ttyfm02
    	  .
    	  .
    	  .

ENVIRON_FILE (文字列)
    ログインしたり su したりした時にセットする環境変数のリスト (一行にひとつずつ) が書かれたファイル。

ENV_HZ (文字列)
    このパラメータにはHZ環境変数の内容を指定する。 使用例は:

        ENV_HZ HZ=50

    このパラメータが定義されていない場合は、HZの値は初期化されない。

ENV_PATH (文字列)
    このパラメータは一般ユーザの検索パスに設定しなくてはならない。 UIDがゼロ以外のユーザがログインした場合、環境変数PATHの内容はこの 値に初期化される。 このパラメータは必ず必要である; 定義されていない場合は誤った デフォルト値に設定されてしまうだろう。

ENV_SUPATH (文字列)
    このパラメータはスーパーユーザの検索パスに設定しなくてはならない。 UIDがゼロのユーザがログインした場合、環境変数PATHの内容はこの 値に初期化される。 このパラメータは必ず必要である; 定義されていない場合は誤りのあり得る デフォルト値に設定されてしまうだろう。

ENV_TZ (文字列)
    このパラメータには環境変数TZを作り出すための情報を指定する。 パラメータの値は、TZに指定したい値か、この情報が記述されているファイルの 絶対パス名でなくてはならない。 使用例は:

        ENV_TZ TZ=CST6CDT

    又は

        ENV_TZ /etc/tzname

    存在しないファイルを指定した場合、TZはあるデフォルト値に初期化される。 このパラメータが未定義の場合はTZの値は初期化されない。

ERASECHAR (数)
    端末の erase 文字がこの値に初期化される。 termio インターフェースを備えたシステム(例えば System V)でのみサポートされている。 指定されていない場合は、erase文字はバックスペースに初期化される。 関連情報についてはKILLCHARを参照せよ。

FAILLOG_ENAB (ブール値)
    yes に設定した場合は、ログインの失敗が /var/log/faillog 中に faillog(8) の書式で記録される。

FAIL_DELAY (数)
    ログインが失敗する毎に遅延させる秒数。

FAKE_SHELL (文字列)
    本当のユーザーシェルの代わりに、このパラメータで指定されたプログラムが起動される。 しかし、その目に見える名前 (argv[0]) は元のシェルとなる。 起動されたプログラムは実際のシェルの起動前に必要な作業 (ロギング、追加認証、バナー、...)が行なえる。

FTMP_FILE (文字列)
    このパラメータにはログイン失敗を記録するファイルの絶対パス名を指定する。 ログイン失敗が発生した場合、その記録がこのファイルに utmp 形式のレコードで追加される。 /var/log/faillog へのログイン失敗の記録とは、以下の点で異なっていることに注意。 この機能ではログイン失敗を全て記録するが、``faillog''機能ではログイン失敗 情報をユーザ毎に記録して行く。 このパラメータが指定されていない場合はロギングが抑制される。 関連情報はFAILLOG_ENABとLOG_UNKFAIL_ENABを参照せよ。

GID_MAX (数)

GID_MIN (数)
    groupadd プログラムがグループIDを選択する時の範囲。

HUSHLOGIN_FILE (文字列)
    このパラメータは``hushlogin''の条件を設定するために用いる。 この設定を行う方法には二通りある。 第一の方法は、このパラメータの値がファイル名であり且つそのファイルが ユーザのホームディレクトリに存在する場合は``hushlogin''の条件が成立する、 というものである。 ファイルの中身は無視される; それが存在する事のみが``hushlogin''条件を 成立させるのである。 第二の方法は、このパラメータの値が絶対パス名で、ユーザのログイン名又は シェルがこのファイル中に記述されている場合に``hushlogin''条件が成り立つ、 というものである。 この場合、ファイルは以下の様な書式でなくてはならない:

    	demo
    	/usr/lib/uucp/uucico
    	  .
    	  .
    	  .

    このパラメータが未定義の場合は、``hushlogin''条件が成立することは無い。 ``hushlogin''条件が成立した場合、その日のメッセージの表示、もっとも最近の ログイン成功及び失敗の表示、メイルの有無の表示、パスワード期限のチェックは 行われない。 ユーザのホームディレクトリにhushloginファイルを置かせる方法を用いると ユーザがパスワード期限のチェックを回避できてしまうことに注意。 関連する情報はMOTD_FILE, FAILLOG_ENAB, LASTLOG_ENAB, 及びMAIL_CHECK_ENAB を参照せよ。

ISSUE_FILE (文字列)
    ログインプロンプトを出す前に表示するファイルのフルパス名。

KILLCHAR (数)
    端末の kill 文字がこの値に初期化される。 termio インターフェースを備えたシステム(例えば System V)でのみサポートされている。 指定されていない場合は、kill文字はCTRL/Uに初期化される。 関連情報についてはERASECHARを参照せよ。

LASTLOG_ENAB (ブール値)
    このパラメータを yes に設定し、且つファイル /var/log/lastlog が存在する場合、ユーザがログインに成功した記録がこのファイルに残される。 さらに、このオプションがオンに設定されている場合は最も最近のログイン成功 及び失敗日時がユーザに表示される。FAILLOG_ENABがオンになっていない場合は ログイン失敗の表示は行われない。 ``hushlogin''条件が成り立っている場合はログイン成功も失敗も表示されない。

LOGIN_RETRIES (数)
    login プログラムが終了するまでに可能なログインの再試行の数。

LOGIN_STRING (文字列)
    XXX 文書化の必要あり。

LOGIN_TIMEOUT (数)
    XXX 文書化の必要あり。

LOG_OK_LOGINS (ブール値)
    XXX 文書化の必要あり。

LOG_UNKFAIL_ENAB (ブール値)
    このパラメータが yes に設定されている場合はログイン失敗が記録される際に未登録のユーザ名も 含められる。セキュリティを危険に晒す可能性もあることに注意; よく見られる ログインの失敗に、ユーザ名とパスワードを入れ換えて入力してしまうことが 挙げられるが、この場合パスワードが失敗ログに記録されてしまう。 このオプションをオフにしておくと、未登録ユーザ名はログイン失敗メッセージに 記録されない。

MAIL_CHECK_ENAB (ブール値)
    このパラメータを yes に設定すると、ログイン時にユーザにメイルボックスの状態を通知する。 関連情報はMAIL_DIRを参照せよ。

MAIL_DIR (文字列)
    このパラメータにはユーザのメイルボックスファイルが置かれているディレクトリの 絶対パスを指定する。 このパスにユーザのログイン名を付け足してMAIL環境変数 - ユーザの メイルボックスへのパス - を作り出す。 このパラメータと MAIL_FILE のどちらかは必ず定義しなくてはならない; 未定義の場合は正しくない可能性のあるデフォルト値が使われる。 関連情報はMAIL_CHECK_ENABを参照せよ。

MAIL_FILE (文字列)
    このパラメータにはメイルボックスファイルの名前を指定する。 ユーザのホームディレクトリにこの名前が追加されて、 MAIL環境変数 - ユーザのメイルボックスへのパス - を作り出す。 このパラメータと MAIL_DIR のどちらかは必ず定義しなくてはならない; 未定義の場合は正しくない可能性のあるデフォルト値が使われる。 関連情報はMAIL_CHECK_ENABを参照せよ。

MD5_CRYPT_ENAB (ブール値)
    yes なら、 passwd プログラムは新しく変更されたパスワードを新しい MD5 ベースの crypt(3) パスワードハッシュアルゴリズムを用いて暗号化する。 これは FreeBSD で最初に採用され、Linux では libc-5.4.38 と glibc-2.0 (またはそれ以上) で対応している。 このアルゴリズムは 8 文字以上のパスワードに対応している ( getpass(3) により 127 文字に制限される)が、従来の crypt(3) 実装と互換性がない。

MOTD_FILE (文字列)
    このパラメータには``その日のメッセージ''ファイルへのパス名をコロンで区切って 指定する。 指定したファイルが存在する場合は、ユーザのログイン時にファイルの中身が 表示される。 このパラメータが定義されていない場合、もしくは``hushlogin''ログイン条件 が成り立つ場合には、表示は行われない。

NOLOGINS_FILE (文字列)
    このパラメータにはroot以外のログインを禁止するファイルの絶対パス名を指定 する。 このファイルが存在する場合には、root以外のユーザがログインしようとした際 ファイルの中身が表示され、ログインは拒否される。このパラメータが指定されて いない場合はこの機能は使用できない。

NOLOGIN_STR (文字列)
    XXX 文書化の必要あり。

OBSCURE_CHECKS_ENAB (ブール値)
    このパラメータが yes に設定されている場合は、パスワード変更を受け付ける前にプログラム passwd が余分にチェックを行う。 行われるチェックは非常に単純であり、是非とも用いるべきである。 passwd プログラムが root によって実行された場合は、パスワードの難解度チェックはバイパスされる。 関連情報はPASS_MIN_LENを参照せよ。

PASS_ALWAYS_WARN (ブール値)
    XXX 文書化の必要あり。

PASS_CHANGE_TRIES (数)
    XXX 文書化の必要あり。

PASS_MIN_DAYS (数)
    パスワードが変更できるようになるまでの最短日数。 この日数が経たないうちにパスワードを変更しようとしても拒否される。 指定されていない場合はゼロと見做される。

PASS_MIN_LEN (数)
    パスワードとして許される最小の文字数。 これよりも短いパスワードを設定しようとしても拒否される。 ゼロに設定しておくとこの検査は行われない。 指定されていない場合はゼロと見做される。

PASS_MAX_DAYS (数)
    一つのパスワードを使える最長日数。パスワードがこの日数よりも古い場合は アカウントがロックされる。指定されていない場合はある大きな数が用いられる。

PASS_MAX_LEN (数)
    XXX 文書化の必要あり。

PASS_WARN_AGE (数)
    パスワードの有効期限が来る前に警告を発する日数。ゼロにしておくと、当日にのみ 警告を行い、負数を指定した場合は警告は行われない。 指定されていない場合は警告は行われない。

PORTTIME_CHECKS_ENAB (ブール値)
    このパラメータを yes に設定し、且つ /etc/porttime ファイルが存在する場合は、ユーザがその時間指定した端末からログインして良いか を確認するのにそのファイルを参照する。 c.f. porttime(5)

QMAIL_DIR (文字列)
    このパラメータには Qmail ユーザのための Maildir があるディレクトリを指 定する。関連情報は MAIL_CHECK_ENAB を参照せよ。

QUOTAS_ENAB (ブール値)
    このパラメータが yes に設定されている場合は、ユーザの``ulimit'', ``umask'', ``niceness'' が passwd ファイルの gecos 欄に指定されている値に初期化される。 c.f. passwd(5)

SU_NAME (文字列)
    このパラメータは``su -''が実行された場合のコマンド名を設定する。 例えば、このパラメータが``su''と定義されていた場合、 ps(1) では実行中のコマンドが``-su''と表示される。 このパラメータが定義されていない場合は、 ps(1) には実行中の実際のシェルの名前、例えば``-sh``といった表示がなされる。

SULOG_FILE (文字列)
    このパラメータには su コマンドの実行記録を書き込むファイルの絶対パス名を指定する。 このパラメータが設定されていない場合は、記録は行われない。 su コマンドはパスワードを認証する際に使われる事もあるので、このオプション又は syslog のいずれかを用いて su 実行を記録しなくてはならない。 関連情報はSYSLOG_SU_ENABオプションを参照せよ。

SU_WHEEL_ONLY (ブール値)
    XXX 文書化の必要あり。

SYSLOG_SG_ENAB (ブール値)
    XXX 文書化の必要あり。

SYSLOG_SU_ENAB (ブール値)
    このパラメータが yes に設定され、且つ login が syslog 機能を働かせるようにコンパイルされている場合は、全ての su 実行が syslog 機能を用いて通知される。 関連情報はSULOG_FILEを参照せよ。

TTYGROUP (文字列又は数)
    端末のグループ所有属性がこのグループ名もしくはIDに初期化される。 良く知られたセキュリティ攻撃の一つに、他のユーザの端末線に端末 コントロールシーケンスを送る、というものがある。 この問題は、他のユーザが端末線にアクセスできないように許可属性を設定すれば 回避できるが、こうすると残念ながら write といったプログラムが機能しなくなってしまう。他の解決方法としては、 潜在的に危険を孕んだ文字シーケンスをフィルターして取り除いてしまう様な write プログラムを使い、これを特殊なグループに``setgid''させ、このグループに 端末デバイスのグループ所有属性を割り当て、端末線の許可属性を0620に 設定する、というものもある。 TTYGROUPはまさにこの様な状況のために設定できるようにしてある。 この項目が定義されていないときは、端末のグループ所有属性はユーザのグループ 番号に初期化される。 関連情報は TTYPERM を参照せよ。

TTYPERM (数)
    ログイン端末の許可属性がこの値に初期化される。 典型的な設定値としては、0622に設定して他のユーザがその端末にwrite アクセス出来る様にするものや、0600に設定して他のユーザから端末を 守るものなどがある。 指定されていない場合は、端末の許可属性は0622に初期化される。 関連情報はTTYGROUPを参照せよ。

TTYTYPE_FILE (文字列)
    このパラメータには端末デバイスを端末の種類にマップするファイルの絶対パス名を 指定する。各行には端末の種類を一つと端末線を一つ、空白で区切って記述する。 例えば:

    	vt100 	tty01
    	wyse60	tty02
    	  .   	  .
    	  .   	  .
    	  .   	  .

    この情報は環境変数 TERM がまだ設定されていない時に これを初期化するためだけに用いられる。 記号``#''で始まる行はコメントとして扱われる。 このパラメータが設定されていない場合、ファイルが存在しない場合、もしくはこの ファイル中で端末線が見つからない場合は、環境変数TERMは設定されない。

UID_MAX (数)
    XXX 文書化の必要あり。

UID_MIN (数)
    XXX 文書化の必要あり。

ULIMIT (倍精度数)
    ファイルサイズの限度をこの値に初期化する。 ulimit が備わっているシステム、例えばSystem Vでのみサポートされている。 指定されていない場合は、ファイルサイズ限度はある大きな値に初期化される。

UMASK (数)
    許可属性マスクをこの値に初期化する。 指定されていない場合は、許可属性マスクはゼロに初期化される。

USERDEL_CMD (文字列)
    XXX 文書化の必要あり。

相互参照
以下の相互参照は shadow ログイン機能中のどのプログラムが どのパラメータを使用するかを示したものである。

login
    CONSOLE DIALUPS_CHECK_ENAB ENV_HZ ENV_SUPATH ENV_TZ ERASECHAR FAILLOG_ENAB FTMP_FILE HUSHLOGIN_FILE KILLCHAR LASTLOG_ENAB LOG_UNKFAIL_ENAB MAIL_CHECK_ENAB MAIL_DIR MOTD_FILE NOLOGINS_FILE PORTTIME_CHECKS_ENAB QUOTAS_ENAB TTYPERM TTYTYPE_FILE ULIMIT UMASK

newusers
    PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE UMASK

passwd
    OBSCURE_CHECKS_ENAB PASS_MIN_LEN

pwconv
    PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE

su  ENV_HZ ENV_SUPATH ENV_TZ HUSHLOGIN_FILE MAIL_CHECK_ENAB MAIL_DIR MOTD_FILE NOLOGIN_STR QUOTAS_ENAB SULOG_FILE SYSLOG_SU_ENAB

sulogin
    ENV_HZ ENV_SUPATH ENV_TZ MAIL_DIR QUOTAS_ENAB TTYPERM

バグ
この man ページに書かれていない設定パラメータもある。

関連項目
login(1), faillog(5), passwd(5), porttime(5), faillog(8)

著者
Julianne Frances Haugh (jockgrrl@ix.netcom.com)
Chip Rosenthal (chip@unicom.com)