/etc/login.defs
NAME
shadow password suite configuration
DESCRIPTION
/etc/login.defs ファイルは、shadow password suiteに関するサイト固有の設定を定義する。このファイルは必須である。このファイルがなくてもシステムの動作が妨げられることはないが、おそらく好ましくない動作になると思われる。
このファイルは可読性の高いテキストファイルで、ファイルの各行には1つの設定パラメータが記述されている。行は空白で区切られた設定名と設定値で構成されている。空白行とコメント行は無視される。コメントは "#"ポンド記号で始まり、ポンド記号はその行の最初の非空白文字でなければならない。
パラメータ値には、文字列、ブーリアン、数値、長さの異なる数値の4種類を指定することができる。文字列は、印刷可能な任意の文字で構成される。booleanは、値yesかnoのどちらかでなければならない。booleanパラメータが未定義の場合、またはこれら以外の値を持つ場合は、noが与えられる。数値(regularとlongの両方)は、10進数、8進数(値の前に0を付ける)、16進数(値の前に0xを付ける)のいずれかを指定することができる。正規の数値パラメーターと長い数値パラメーターの最大値は、機種依存である。
以下の設定項目がある:
- CHFN_RESTRICT (string)
- このパラメータは、一般ユーザが chfn プログラムを使って /etc/passwd ファイルの gecos フィールドのどの値を変更してもよいかを指定する。f, r, w, h の文字の組み合わせで、それぞれ Full name, Room number, Work phone, Home phone を表す。後方互換性のために、yesはrwhと同等、noはfrwhと同等である。指定しない場合、スーパーユーザのみが変更を行うことができる。chfn SUIDをインストールしないことで、最も制限の多い設定を行うことがでる。
- CONSOLE_GROUPS (string)
- コンソールでログインするときにユーザーの補助グループセットに追加するグループのリスト(CONSOLE設定によって決定される)。デフォルトはnoneである。注意深く使用すること - コンソールでログインしていないときでも、ユーザーがこれらのグループへの永続的なアクセスを得ることが可能な場合がある。
- CREATE_HOME (boolean)
- 新規ユーザーに対して、ホームディレクトリをデフォルトで作成するかどうかを指定する。
- この設定はシステム・ユーザーには適用されず、コマンドラインで上書きすることができる。
- DEFAULT_HOME (boolean)
- ホームディレクトリにcdできない場合に、ログインを許可するかどうかを指定する。デフォルトはnoである。
- yesに設定すると、ホームディレクトリにcdできない場合、ユーザはルート(/)ディレクトリにログインするようになる。
- ENCRYPT_METHOD (string)
- これは、パスワードを暗号化するためのシステムのデフォルトの暗号化アルゴリズムを定義する(コマンドラインでアルゴリズムが指定されていない場合)。
- 以下の値のいずれかを取ることができる。DES (既定)、MD5、SHA256、SHA512 のいずれかである。
- 注:このパラメータは、MD5_CRYPT_ENAB変数を上書きする。
- 注:これは、グループパスワードの生成にのみ影響する。ユーザーパスワードの生成はPAMによって行われ、PAMの設定に従う。この変数は、PAMの構成と一致するように設定することが推奨される。
- ENV_HZ (string)
- 設定された場合、ユーザーログイン時に環境変数HZを定義するために使用される。値の前にはHZ=を付けなければならない。 Linuxで一般的な値はHZ=100である。
- HZ環境変数は、ユーザー(スーパーユーザー)がsuloginでログインしたときにのみ設定される。
- 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)
- Terminal ERASE character (010 = backspace, 0177 = DEL).
- 8進数の場合は "0"、16進数の場合は "0x "を先頭に付けることができる。
- FAIL_DELAY (number)
- ログインに失敗した後、再試行が許可されるまでの遅延時間(秒)。
- FAKE_SHELL (string)
- 設定された場合、loginは/etc/passwdで指定されたユーザーのシェルの代わりに、このシェルを実行する。
- GID_MAX (number), GID_MIN (number)
- useradd, groupadd, newusersで通常のグループを作成する際に使用するグループIDの範囲である。
- GID_MIN (resp. GID_MAX) のデフォルト値は1000 (resp. 60000)である。
- HOME_MODE (number)
- 新しいホームディレクトリのためのモード。指定されない場合、UMASK はモードを作成するために使用される。
- useradd と newusers は、作成するホームディレクトリのモードを設定するためにこれを使用する。
- HUSHLOGIN_FILE (string)
- 定義された場合、このファイルは、ログインシーケンス中のすべての通常のおしゃべりを抑制することができる。フルパス名が指定された場合、そのファイル中にユーザー名またはシェルがあれば、ハッシュドモードが有効になる。フルパスでない場合、そのファイルがユーザーのホームディレクトリに存在すれば、ハッシュドモードが有効になる。
- KILLCHAR (number)
- Terminal KILL character (025 = CTRL/U).
- 8進数の場合は "0"、16進数の場合は "0x "を先頭に付けることができる。
- LASTLOG_UID_MAX (number)
- lastlogエントリを更新すべき最も高いユーザID番号。高いユーザ ID は通常リモートユーザ ID 認証サービスによって追跡されるので、 巨大な疎な lastlog ファイルを作成する必要はない。
- LASTLOG_UID_MAX オプションが設定にない場合、 lastlog エントリの書き込みにユーザ ID の制限がないことを意味する。
- LOG_OK_LOGINS (boolean)
- ログインの成功ログを有効にする。
- LOG_UNKFAIL_ENAB (boolean)
- ログイン失敗の記録時に、不明なユーザー名を表示するようにする。
- 注:不明なユーザー名を記録することは、ユーザーがログイン名の代わりにパスワードを入力した場合、セキュリティ上の問題になる可能性がある。
- LOGIN_RETRIES (number)
- パスワードが不正な場合にログインを再試行する回数の最大値。
- デフォルトの pam_unix モジュールには 3 回の再試行が組み込まれているので、 これは PAM によって上書きされる可能性が高い。しかし、これは PAM_MAXTRIES を強制しない認証モジュールを使用している場合の安全な代替手段である。
- LOGIN_TIMEOUT (number)
- ログインにかかる最大時間(秒)
- MAIL_DIR (string)
- メールスプールディレクトリです。これは、対応するユーザーアカウントが変更または削除されたときに、メールボックスを操作するために必要である。指定しない場合は、コンパイル時のデフォルトが使用される。
- MAIL_FILE (string)
- ユーザのメールスプールファイルの場所をホームディレクトリと相対的に定義する。
- MAIL_DIR と MAIL_FILE 変数は useradd, usermod, userdel によって、ユーザのメール・スプールを作成、移動、削除するために使われる。
- MAX_MEMBERS_PER_GROUP (number)
- グループエントリあたりの最大メンバー数。最大値に達すると、/etc/groupに新しいグループエントリ(行)が開始される(同じ名前、同じパスワード、同じGIDで)。
- デフォルト値は0である。つまり、グループ内のメンバー数に制限はない。
- この機能(split group)は、グループ・ファイルの行の長さを制限することを許可する。これは、NISグループの行が1024文字より大きくないことを確認するのに便利である。このような制限を強制する必要がある場合は、25 を使用できる。
- 注意:分割グループは、すべてのツールでサポートされていない場合がある(Shadow toolsuite でも)。本当に必要でない限り、この変数を使用するべきではない。
- MD5_CRYPT_ENAB (boolean)
- パスワードが MD5 ベースのアルゴリズムで暗号化されていなければならないかどうかを示す。yesに設定すると、新しいパスワードはFreeBSDの最近のリリースで使用されているものと互換性のあるMD5ベースのアルゴリズムを使って暗号化される。長さに制限のないパスワードや、より長いソルト文字列にも対応している。新しいアルゴリズムを理解できない他のシステムに、暗号化されたパスワードをコピーする必要がある場合は、noに設定する。デフォルトはnoである。
- この変数は、ENCRYPT_METHOD変数や、暗号化アルゴリズムを設定するためのコマンドラインオプションに取って代わられる。
- この変数は非推奨です。ENCRYPT_METHODを使用すべきである。
- 注意:これはグループパスワードの生成にのみ影響する。ユーザーパスワードの生成はPAMによって行われ、PAMの設定に従う。この変数は PAM の設定と矛盾しないように設定することが推奨される。
- PASS_MAX_DAYS (number)
- パスワードが使用できる最大日数である。これより古いパスワードの場合、パスワードの変更が強制される。指定しない場合は、-1が想定される(制限を解除する)。
- PASS_MIN_DAYS (number)
- パスワードの変更に許容される最短日数である。これより早くパスワードを変更しようとすると、拒否される。指定しない場合、-1が仮定される(制限を無効にする)。
- PASS_WARN_AGE (number)
- パスワードの有効期限が切れるまでの警告日数。0は、有効期限切れ当日にのみ警告が出されることを意味し、負の値は警告が出されないことを意味する。指定しない場合、警告は行われない。
- PASS_MAX_DAYS、PASS_MIN_DAYS、PASS_WARN_AGEは、アカウント作成時にのみ使用される。これらの設定を変更しても、既存のアカウントには影響しない。
- SHA_CRYPT_MIN_ROUNDS (number), SHA_CRYPT_MAX_ROUNDS (number)
- ENCRYPT_METHOD が SHA256 または SHA512 に設定されている場合、これは暗号化アルゴリズムがデフォルトで使用する SHA ラウンド数を定義する(コマンドラインでラウンド数が指定されていない場合)。
- ラウンド数が多いと、パスワードのブルートフォース(総当り)が難しくなる。しかし、ユーザーを認証するために、より多くのCPUリソースが必要になることにも注意すること。
- 指定しない場合、libcはデフォルトのラウンド数(5000)を選択する。
- 値は1000-999,999,999の範囲内でなければならない。
- SHA_CRYPT_MIN_ROUNDSまたはSHA_CRYPT_MAX_ROUNDSのいずれかの値のみが設定されている場合、この値が使用される。
- SHA_CRYPT_MIN_ROUNDS > SHA_CRYPT_MAX_ROUNDSの場合、最も大きい値が使用される。
- 注:これは、グループパスワードの生成にのみ影響する。ユーザーパスワードの生成はPAMによって行われ、PAMの設定に従う。この変数は、PAMの構成と一致するように設定することが推奨される。
- SULOG_FILE (string)
- 定義された場合、すべてのsuの活動はこのファイルに記録される。
- SU_NAME (string)
- 定義されている場合、"su -" を実行したときに表示されるコマンド名である。例えば、"su" と定義されている場合、"ps" は "-su" というコマンドを表示する。定義されていない場合、"ps" は実際に実行されているシェルの名前、例えば "-sh" のようなものを表示する。
- SUB_GID_MIN (number), SUB_GID_MAX (number), SUB_GID_COUNT (number)
- /etc/subuid が存在する場合、useradd と newusers コマンドは (すでに下位のグループ ID を持っていない限り) 各新規ユーザに対して SUB_GID_MIN から SUB_GID_MAX の範囲から未使用のグループ ID を割り当てる。
- SUB_GID_MIN, SUB_GID_MAX, SUB_GID_COUNTのデフォルト値はそれぞれ100000, 600100000, 65536である。
- SUB_UID_MIN (number), SUB_UID_MAX (number), SUB_UID_COUNT (number)
- /etc/subuid が存在する場合、useradd と newusers コマンドは (すでに下位のユーザ ID を持っていない限り) 各新規ユーザに対して SUB_UID_MIN から SUB_UID_MAX までの範囲から未使用のユーザ ID SUB_UID_COUNT を割り当てる。
- SUB_UID_MIN, SUB_UID_MAX, SUB_UID_COUNTのデフォルト値はそれぞれ100000, 600100000, 65536である。
- SYS_GID_MAX (number), SYS_GID_MIN (number)
- useradd, groupadd, newusersによるシステムグループの作成に使用されるグループIDの範囲。
- SYS_GID_MIN (resp. SYS_GID_MAX) のデフォルト値は 101 (resp. GID_MIN-1) である。
- SYS_UID_MAX (number), SYS_UID_MIN (number)
- useradd または newusers によるシステムユーザの作成に使用するユーザ ID の範囲。
- SYS_UID_MIN (resp. SYS_UID_MAX) のデフォルト値は 101 (resp. UID_MIN-1) である。
- SYSLOG_SG_ENAB (boolean)
- sgの動作の「syslog」ロギングを有効にする。
- SYSLOG_SU_ENAB (boolean)
- su の動作の "syslog" ロギングを有効にする - sulog ファイルのロギングに加えてである。
- TTYGROUP (string), TTYPERM (string)
- 端末のパーミッション:ログインttyの所有者はTTYGROUPグループになり、パーミッションはTTYPERMに設定される。
- デフォルトでは、端末の所有権はユーザーのプライマリ・グループに設定され、パーミッションは0600に設定されている。
- TTYGROUP には、グループ名または数値のグループ識別子を指定できる。
- 端末を所有する特別なグループに「setgid」される書き込みプログラムがある場合、TTYGROUPをグループ番号に、TTYPERMを0620に定義すること。それ以外の場合は、TTYGROUPをコメントアウトしたままにして、TTYPERMに622または600を割り当てること。
- TTYTYPE_FILE (string)
- 定義されている場合、tty ラインを TERM 環境パラメータにマップするファイル。ファイルの各行は、"vt100 tty01" のような形式である。
- UID_MAX (number), UID_MIN (number)
- useradd や newusers で一般ユーザーを作成する際に使用するユーザーIDの範囲である。
- UID_MIN (resp. UID_MAX) のデフォルト値は1000 (resp. 60000) である。
- UMASK (number)
- ファイルモード作成マスクはこの値で初期化される。指定されない場合、マスクは 022 に初期化される。
- useradd と newusers は、HOME_MODE が設定されていない場合、作成するホームディレクトリのモードを設定するためにこのマスクを使用する。
- また、pam_umaskによって、デフォルトのumask値として使用される。
- USERDEL_CMD (string)
- 定義されている場合、このコマンドはユーザーを削除するときに実行される。これは、削除されるユーザー(最初の引数として渡される)が所有するすべてのat/cron/printジョブなどを削除する必要がある。
- スクリプトのリターンコードは考慮されない。
- 以下は、ユーザーのcron、at、printジョブを削除するスクリプトの例である:
#! /bin/sh
# Check for the required argument.
if [ $# != 1 ]; then
echo "Usage: $0 username"
exit 1
fi
# Remove cron jobs.
crontab -r -u $1
# Remove at jobs.
# Note that it will remove any jobs owned by the same UID,
# even if it was shared by a different username.
AT_SPOOL_DIR=/var/spool/cron/atjobs
find $AT_SPOOL_DIR -name "[^.]*" -type f -user $1 -delete \;
# Remove print jobs.
lprm $1
# All done.
exit 0
CROSS REFERENCES
以下のクロスリファレンスは、shadow password suite内のどのプログラムがどのパラメータを使用するかを示している。
- chfn
- CHFN_RESTRICT
- chgpasswd
- ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS
- chpasswd
- SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS
- gpasswd
- ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS
- groupadd
- GID_MAX GID_MIN MAX_MEMBERS_PER_GROUP SYS_GID_MAX SYS_GID_MIN
- groupdel
- MAX_MEMBERS_PER_GROUP
- groupmems
- MAX_MEMBERS_PER_GROUP
- groupmod
- MAX_MEMBERS_PER_GROUP
- grpck
- MAX_MEMBERS_PER_GROUP
- grpconv
- MAX_MEMBERS_PER_GROUP
- lastlog
- LASTLOG_UID_MAX
- login
- CONSOLE_GROUPS DEFAULT_HOME ERASECHAR FAIL_DELAY FAKE_SHELL HUSHLOGIN_FILE KILLCHAR LOGIN_RETRIES LOGIN_TIMEOUT LOG_OK_LOGINS LOG_UNKFAIL_ENAB TTYGROUP TTYPERM TTYTYPE_FILE USERGROUPS_ENAB
- newgrp / sg
- SYSLOG_SG_ENAB
- newusers
- ENCRYPT_METHOD GID_MAX GID_MIN MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB HOME_MODE PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE SHA_CRYPT_MAX_ROUNDS SHA_CRYPT_MIN_ROUNDS SUB_GID_COUNT SUB_GID_MAX SUB_GID_MIN SUB_UID_COUNT SUB_UID_MAX SUB_UID_MIN SYS_GID_MAX SYS_GID_MIN SYS_UID_MAX SYS_UID_MIN UID_MAX UID_MIN UMASK
- pwck
- PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
- pwconv
- PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
- su
- CONSOLE_GROUPS DEFAULT_HOME ENV_PATH ENV_SUPATH SULOG_FILE SU_NAME SYSLOG_SU_ENAB
- sulogin
- ENV_HZ
- useradd
- CREATE_HOME GID_MAX GID_MIN HOME_MODE LASTLOG_UID_MAX MAIL_DIR MAX_MEMBERS_PER_GROUP PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE SUB_GID_COUNT SUB_GID_MAX SUB_GID_MIN SUB_UID_COUNT SUB_UID_MAX SUB_UID_MIN SYS_GID_MAX SYS_GID_MIN SYS_UID_MAX SYS_UID_MIN UID_MAX UID_MIN UMASK
- userdel
- MAIL_DIR MAIL_FILE MAX_MEMBERS_PER_GROUP USERDEL_CMD USERGROUPS_ENAB
- usermod
- LASTLOG_UID_MAX MAIL_DIR MAIL_FILE MAX_MEMBERS_PER_GROUP
BUGS
かつてshadow password suiteによって提供されていた機能の多くは、現在では PAM によって処理される。 したがって、/etc/login.defs はもはや passwdでは使われないし、login や su ではあまり使われない。代わりに、対応する PAM 設定ファイルを参照すること。
SEE ALSO
login, passwd, su, passwd, 認証とアクセス制御
![]() | この記事は、Debianのmanpageの項目を翻訳一部改変しております。 |