良くあるんだけど…
客先のサーバの管理をしていると、アカウントの作成依頼が時々くる。
どうやって管理するかと言うとExcelやGoogle Spreadsheetに
ユーザ名・パスワード、氏名、作成日などを記録しておく。
ユーザ名は、氏名から作成するので問題ないがパスワードはあらかじめ余分に生成して記録しておく。
使っていないパスワードが、あと1〜2個になったら、さらに生成して追記している。
ところが、パスワードをまとめて作れば作るほど、間隔が伸びるので作り方を忘れてしまう。
以前は、PHPで書いて、WEBアクセスで指定個数分出力させる方法も取っていたが、ブラウザを起動するのが面倒だ。
たまには、Commandの使い方の解説も含めて、記録しておこうと思う。
パスワードの作成
$ pwgen
これで、160個のパスワードを生成してくれる。(図)
ただしオプション無しだと本当にランダムに生成するので、たまたま強度の弱いパスワードが生成される。
そこで、通常は次のようなオプションを付加する。
$ pwgen -Ccns とか $ pwgen -CcnsB とか・・・
使い方は以下の通り
Usage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ]
Options supported by pwgen:
-c or --capitalize
Include at least one capital letter in the password
-A or --no-capitalize
Don't include capital letters in the password
-n or --numerals
Include at least one number in the password
-0 or --no-numerals
Don't include numbers in the password
-y or --symbols
Include at least one special symbol in the password
-r <chars> or --remove-chars=<chars>
Remove characters from the set of characters to generate passwords
-s or --secure
Generate completely random passwords
-B or --ambiguous
Don't include ambiguous characters in the password
-h or --help
Print a help message
-H or --sha1=path/to/file[#seed]
Use sha1 hash of given file as a (not so) random generator
-C
Print the generated passwords in columns
-1
Don't print the generated passwords in columns
-v or --no-vowels
Do not use any vowels so as to avoid accidental nasty words
使いやすく加工
このままだと、横に8列×20行の出力で、やや使いにくい。
そこで、パイプで処理する。
$ pwgen -Ccns | tr ' ' '\n'
要は、単語区切りの空白を改行に置き換えるだけだ。
これで、横並びではなく、すべて縦に出力される。(160行)
ふつうはこんなに作り置きすることはないので、10〜20個あれば十分だ。
そこで、最初の10個を取り出す。
$ pwgen -Ccns | tr ' ' '\n' | head -n 10
y51jH7UK
uFhjUPV3
Nx59kvKW
3e6ONNy3
A8E4rh1q
UGI8kSxN
np7BB1VN
PnwqGvU4
4ub7avvT
F78PQYBW
これで、無事に目的が達成できた。
このまま、Worksheet上にコピー&ペーストすれば完了。
ファイルに落としたければ、更にリダイレクトで吐き出せば良い。
$ pwgen -Ccns | tr ' ' '\n' | head -n 10 > pass_file.txt
これで、完了。
相当よく使うなら、上記のコマンドをファイルに書いて、実行権限つけておくとか、aliasを登録しておけば楽勝です。
コメント
コメントを投稿
励みになりますので、簡単で良いので一言くださいませ。