「パスワードはよくない」と言われ続けて久しいですが、パスワードに変わる決定打も出ない以上、未だパスワードを使い続けざるを得なくなっている、のも間違いないところです。
パスワードを生成するには…?
ささっとPerlやRubyのワンライナーで書ける人や、ブラウザコンソールで実行してしまえる人なら不要かもしれませんが、「適当なパスワードを生成する」のは、意外と面倒なものです。とりわけ、「大文字・小文字・数字・記号全部入りの20文字のパスワード」となれば、正しくランダムに生成する方法を考えるだけで面倒なものです。
ネットを探せば、Webページで自動的にパスワードを生成するツールがありますが、乱数アルゴリズムとか、そういう大事なパスワードをHTTPで流してしまっていいのかとか、ページに不正な仕掛けがある危険性とか、総合的に考えれば選択肢とすべきではないといえます。
mkpasswd
の使い方
幸い、Linuxにはmkpasswd
という、そのためのツールがあります。expect
というパッケージに入っていることが多いです。
インストールして、単にmkpasswd
とすると、デフォルト設定では「45Is!szJv」のような、英字の大文字・小文字・数字・記号が混ざった9文字のパスワードを生成します。生成するパスワードは、引数で制御できます。
-
-l 長さ
…パスワード全体の文字数。 -
-d 数
…数字の入る最低個数。 -
-c 数
…英小文字の入る最低個数。 -
-C 数
…英大文字の入る最低個数。 -
-s 数
…記号の入る最低個数。
なお、スイッチ以外の引数を指定すると、そのユーザーにパスワードをセットするという意味となります。うっかり実行してしまわないように、一般ユーザーから実行した方がいいでしょう(一般ユーザーなら、他人のパスワードは変更できません)。