mkpasswd で小文字だけのパスワードを生成する

パスワードを作成するときに、キーボードを『ftgyふじこlp@;「:・・・』とガシャガシャやったりしてませんか? システム管理者なら、ちゃんとランダムパスワードを生成するようにしましょう。

mkpasswd

このコマンドで、ランダムな文字列が生成されます。
もしこのコマンドが使えなかったら、expectというサービスがインストールされていません。
yumでインストールしておきましょう。

# yum install expect

さてこのパスワード、デフォルトでは全9文字(小文字2、大文字2、数字2、特殊文字1)です。
「大文字と小文字が混在すると、破られにくいけど使いづらい…」とか、「特殊文字は使いづらい…」というときのために、オプションで色々条件が設定できます。

オプション
意味
-l 数字 パスワードの長さを指定(デフォルトは9)
-d 数字 パスワードに含める数字の数を指定(デフォルトは2)
-c 数字 パスワードに含めるアルファベット(小文字)の数を指定(デフォルトは2)
-C 数字 パスワードに含めるアルファベット(大文字)の数を指定(デフォルトは2)
-s 数字 パスワードに含める特殊文字(記号など)の数を指定(デフォルトは1)
-2 パスワードが、右手と左手で交互に入力される文字配列となる(QWERTYキーボードの場合)。両手でパスワードを入力することになるため、入力時に手元を見られてパスワードが盗まれる可能性が低くなる

任意の文字数でパスワードをランダム生成するには - @IT

これを見て、「よし、9文字全部小文字だ」と思ってオプションを「-c 9」にすると、こんなエラーが返ってきます。

# mkpasswd -c 9
impossible to generate 9-character password with 2 numbers, 9 lowercase letters, 2 uppercase letters and 1 special characters.

よく読むと、「9文字のパスワードで2数字、9小文字、2大文字、1特殊文字を使うのは不可能です」
とある。つまりデフォルト設定から足し引きするために、他の文字種の数も設定してあげなくてはいけないのだ。

広告

ということで、正解は

# mkpasswd -c 9 -d 0 -C 0 -s 0

です。これで英小文字のみで9文字のパスワードが生成できます。

About: dacelo


Leave a Reply

Your email address will not be published. Required fields are marked *