CentOS/パスワードの長さや文字などの制限事項を設定する方法
の編集
Top
/
CentOS
/
パスワードの長さや文字などの制限事項を設定する方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * パスワードの長さや文字などの制限事項を設定する方法 [#t4ded4d8] パスワードの文字列に対し、長さや英字大文字小文字、記号などを含めるなどの制限を設定する方法を以下に記します。~ 動作確認したディストリビューションはCentOS5になります。~ 他のバージョンでも同様の設定で動作すると思います。 #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * 関連記事、関連資料 [#rca8bbcd] PAMに関する記事です。 -[[指定したユーザのみsuコマンドの実行を可能にする>Linux環境設定/指定したユーザのみsuコマンドの実行を可能にする]] * PAMの設定を変更することにより実現する [#z3f3281d] PAMのpam_cracklib.soの設定を変更することにより、パスワードに関する制限事項を設定することができます。~ * パスワード設定のファイルのありか [#w0ed53fc] CentOS5では、以下のファイルになります。 /etc/pam.d/system-auth 上記のファイル内の以下の設定が、パスワード制限を設定する行になります。 password requisite pam_cracklib.so try_first_pass retry=3 実際にはpasswordファイルが以下のようになっています。 # cat passwd #%PAM-1.0 auth include system-auth account include system-auth password include system-auth includeでsystem-authになっているので、system-authファイルが設定ファイルの実態になります。 * pam_cracklibのオプション [#mfa88116] pam_cracklibのオプションを以下に記します。~ 使用例は別途記述してあります。 |オプション|説明|例| |type=文字列|passwdコマンドを実行したときのプロンプトに表示する文字列を指定|type=hello| |retry=数値|パスワード変更時の試行回数を指定|retry=3| |difok=数値|現在のパスワードと指定した数字以上異なれば変更を許可する|difok=3| |difignore=数値|difokが無効になる長さを設定する|difignore=23| |minlen=数値|パスワードとして認める採用文字数を指定~厳密にminlenの値が以上のパスワード文字列にしたい場合は、&br;以下のオプションを設定すること。&br;理由は、デフォルト値では、dcredit=1, ucredit=1, lcredit=1, ocredit=1となっており、&br;minlenに指定した値より少ないパスワード文字数でも通ってしまいます。*1|minlen=8| |dcredit=-数値|パスワード内に必要とする数字の数を指定する(値はマイナス値となり、minlenから引き算されます。)|dcredit=-2| |ucredit=-数値|パスワード内に必要とする英大文字の数を指定する(値はマイナス値となり、minlenから引き算されます。)|ucredit=-2| |lcredit=-数値|パスワード内に必要とする英小文字の数を指定する(値はマイナス値となり、minlenから引き算されます。)|lcredit=-2| |ocredit=-数値|パスワード内に必要とする記号の数を指定する(値はマイナス値となり、minlenから引き算されます。)|ocredit=-1| *1 minlenの値ですが、dcreditなどがプラスの値の場合、以下のような解釈になります。~ dcredit=1の場合、パスワードに1つの数字を含む時はminlenからdcreditを引いた値が最低文字数となります。~ dcreditの意味である、数字が含まれない場合はminlenが最低文字数となります。 他のオプションや詳細はman pam_cracklibで確認してみてください。 ** typeを試す [#b4559baf] typeにHELLOを設定してpasswdコマンドを実行してみます。~ 設定は以下の通りです。 password requisite pam_cracklib.so try_first_pass retry=3 type=HELLO 実行結果~ HELLOが出力されていのが確認できます。 [sakura@centos ~]$ passwd Changing password for user sakura. Changing password for sakura (current) UNIX password: New HELLO password: ** minlenの設定例 [#y578f534] minlen=12を設定した場合の例。 設定例は以下の通りです。 password requisite pam_cracklib.so try_first_pass retry=3 minlen=9 上記の例だと、デフォルト値であるdcredit=1, ucredit=1, lcredit=1, ocredit=1が設定されているため、~ 9文字以下でもパスワードが設定できてしまいます。~ 詳細は「pam_cracklibのオプション」の*1を参照してください。 ** dcredit, ucredit, lcredit, ocreditの設定例 [#adec5ac5] 設定例は以下の通りです。 password requisite pam_cracklib.so try_first_pass retry=3 minlen=9 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 パスワード文字数は9文字以上で、~ 数字が1文字以上、英大文字が1文字以上、英小文字が1文字以上、記号が1文字以上を含むパスワードが設定できます。~ たとえば数字が不要の場合は、dcredit=0のように0を指定します。 以上、pam_cracklibの設定方法をいくつか紹介しました。~ * その他の設定値説明 [#q0fe9529] 以下に今回使用した設定値の説明を記します。 ** requisite [#uf41b90e] 今回、requisiteはpam_cracklib.soの処理が失敗すると処理を中断します。~ 他には、required、required、requiredがあります。~ pam_cracklib ** try_first_pass [#d074afaa] try_first_passの説明は以下の通りです。 SourceForge.JP Magazine~ http://sourceforge.jp/magazine/08/11/11/0153210/2 -SourceForge.JP Magazineの上記記事からの抜粋~ PAMは、ユーザーからのパスワードの取得をサポートする。~ 各行ではPAMに対し、パスワードが必要であることと、ユーザーから取得済みのパスワードを再利用するか(use_first_pass)、~ あるいは既に取得したパスワードがあればそれを再利用し、~ なければ入力を促すか(try_first_pass)を指定することができる。~ これは便利な機能である。~ あるサービスに対するPAM認証が2行存在する場合にtry_first_passを用いれば、~ その2行から呼び出される認証サービスにおいてパスワードは2回必要となるが、~ PAMが処理してくれるおかげで入力は1回で済む。 #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
タイムスタンプを変更しない
#navi(../) * パスワードの長さや文字などの制限事項を設定する方法 [#t4ded4d8] パスワードの文字列に対し、長さや英字大文字小文字、記号などを含めるなどの制限を設定する方法を以下に記します。~ 動作確認したディストリビューションはCentOS5になります。~ 他のバージョンでも同様の設定で動作すると思います。 #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * 関連記事、関連資料 [#rca8bbcd] PAMに関する記事です。 -[[指定したユーザのみsuコマンドの実行を可能にする>Linux環境設定/指定したユーザのみsuコマンドの実行を可能にする]] * PAMの設定を変更することにより実現する [#z3f3281d] PAMのpam_cracklib.soの設定を変更することにより、パスワードに関する制限事項を設定することができます。~ * パスワード設定のファイルのありか [#w0ed53fc] CentOS5では、以下のファイルになります。 /etc/pam.d/system-auth 上記のファイル内の以下の設定が、パスワード制限を設定する行になります。 password requisite pam_cracklib.so try_first_pass retry=3 実際にはpasswordファイルが以下のようになっています。 # cat passwd #%PAM-1.0 auth include system-auth account include system-auth password include system-auth includeでsystem-authになっているので、system-authファイルが設定ファイルの実態になります。 * pam_cracklibのオプション [#mfa88116] pam_cracklibのオプションを以下に記します。~ 使用例は別途記述してあります。 |オプション|説明|例| |type=文字列|passwdコマンドを実行したときのプロンプトに表示する文字列を指定|type=hello| |retry=数値|パスワード変更時の試行回数を指定|retry=3| |difok=数値|現在のパスワードと指定した数字以上異なれば変更を許可する|difok=3| |difignore=数値|difokが無効になる長さを設定する|difignore=23| |minlen=数値|パスワードとして認める採用文字数を指定~厳密にminlenの値が以上のパスワード文字列にしたい場合は、&br;以下のオプションを設定すること。&br;理由は、デフォルト値では、dcredit=1, ucredit=1, lcredit=1, ocredit=1となっており、&br;minlenに指定した値より少ないパスワード文字数でも通ってしまいます。*1|minlen=8| |dcredit=-数値|パスワード内に必要とする数字の数を指定する(値はマイナス値となり、minlenから引き算されます。)|dcredit=-2| |ucredit=-数値|パスワード内に必要とする英大文字の数を指定する(値はマイナス値となり、minlenから引き算されます。)|ucredit=-2| |lcredit=-数値|パスワード内に必要とする英小文字の数を指定する(値はマイナス値となり、minlenから引き算されます。)|lcredit=-2| |ocredit=-数値|パスワード内に必要とする記号の数を指定する(値はマイナス値となり、minlenから引き算されます。)|ocredit=-1| *1 minlenの値ですが、dcreditなどがプラスの値の場合、以下のような解釈になります。~ dcredit=1の場合、パスワードに1つの数字を含む時はminlenからdcreditを引いた値が最低文字数となります。~ dcreditの意味である、数字が含まれない場合はminlenが最低文字数となります。 他のオプションや詳細はman pam_cracklibで確認してみてください。 ** typeを試す [#b4559baf] typeにHELLOを設定してpasswdコマンドを実行してみます。~ 設定は以下の通りです。 password requisite pam_cracklib.so try_first_pass retry=3 type=HELLO 実行結果~ HELLOが出力されていのが確認できます。 [sakura@centos ~]$ passwd Changing password for user sakura. Changing password for sakura (current) UNIX password: New HELLO password: ** minlenの設定例 [#y578f534] minlen=12を設定した場合の例。 設定例は以下の通りです。 password requisite pam_cracklib.so try_first_pass retry=3 minlen=9 上記の例だと、デフォルト値であるdcredit=1, ucredit=1, lcredit=1, ocredit=1が設定されているため、~ 9文字以下でもパスワードが設定できてしまいます。~ 詳細は「pam_cracklibのオプション」の*1を参照してください。 ** dcredit, ucredit, lcredit, ocreditの設定例 [#adec5ac5] 設定例は以下の通りです。 password requisite pam_cracklib.so try_first_pass retry=3 minlen=9 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 パスワード文字数は9文字以上で、~ 数字が1文字以上、英大文字が1文字以上、英小文字が1文字以上、記号が1文字以上を含むパスワードが設定できます。~ たとえば数字が不要の場合は、dcredit=0のように0を指定します。 以上、pam_cracklibの設定方法をいくつか紹介しました。~ * その他の設定値説明 [#q0fe9529] 以下に今回使用した設定値の説明を記します。 ** requisite [#uf41b90e] 今回、requisiteはpam_cracklib.soの処理が失敗すると処理を中断します。~ 他には、required、required、requiredがあります。~ pam_cracklib ** try_first_pass [#d074afaa] try_first_passの説明は以下の通りです。 SourceForge.JP Magazine~ http://sourceforge.jp/magazine/08/11/11/0153210/2 -SourceForge.JP Magazineの上記記事からの抜粋~ PAMは、ユーザーからのパスワードの取得をサポートする。~ 各行ではPAMに対し、パスワードが必要であることと、ユーザーから取得済みのパスワードを再利用するか(use_first_pass)、~ あるいは既に取得したパスワードがあればそれを再利用し、~ なければ入力を促すか(try_first_pass)を指定することができる。~ これは便利な機能である。~ あるサービスに対するPAM認証が2行存在する場合にtry_first_passを用いれば、~ その2行から呼び出される認証サービスにおいてパスワードは2回必要となるが、~ PAMが処理してくれるおかげで入力は1回で済む。 #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
テキスト整形のルールを表示する