読者です 読者をやめる 読者になる 読者になる

パスワードを生成するmkpasswdとpwgenの使い方

Unix / Linux
スポンサーリンク

パスワードをランダムに生成してくれる mkpasswd と pwgen コマンドの使い方です。

mkpasswd

mkpasswd はランダムな文字列でパスワードを生成できるコマンドです。インストールは mkpasswd ではなく expect で行ないます。

$ brew install homebrew/dupes/expect  # Mac
$ sudo yum install expect  # CentOS

基本構文は次の通りです。userを指定して root で実行するとパスワードを生成すると同時にユーザーのパスワードを設定することもできます。

mkpasswd [ OPTION ] [ user ]
オプション 機能
-l パスワードの文字数(デフォルト9)
-d パスワードに含める数字の最低文字数(デフォルト2)
-c パスワードに含める小文字の最低文字数(デフォルト2)
-C パスワードに含める大文字の最低文字数(デフォルト2)
-s パスワードに含める特殊文字の最低文字数(デフォルト1)
-p 指定したプログラムにパスワードをセット
-2 パスワード入力の際に左右の手を交互に使うような文字を使用
-v パスワード設定の過程を表示(デフォルト非表示)

ユーザーにパスワードを設定する場合は次のようになります。(rootで実行)

# mkpasswd -p /usr/bin/passwd -v vagrant
spawn /usr/bin/passwd vagrant
Changing password for user vagrant.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
password for vagrant is 7L.0ymHys

pwgen

pwgen は覚えやすいパスワードを生成するプログラムです。

$ brew install pwgen  # Mac
$ sudo yum install pwgen  # CentOS

基本構文は次の通りです。pw_lengthには文字数を、num_pwには生成するパスワード数を指定します。pwgenのみで実行すると 8 文字のパスワードが 160 個生成されます。

pwgen [ OPTION ] [ pw_length ] [ num_pw ]
オプション 機能
-0, --no-numerals パスワードに数字を含めない
-1 生成したパスワードを1行につき1つ出力
-A, --no-capitalize パスワードに大文字小文字を含める事を考慮しない
-B, --ambiguous 'l' '1'や'0' 'O'のような間違えやすい文字は使用しない
-N, --num-passwords=n パスワードの生成個数(num_pwで指定するのと同じ)
-s, --secure パスワードを完全にランダムに生成(基本はランダムじゃない)
-y, --symbols パスワードに少なくとも1つの特殊文字を含める