画像やリンクが無効になっている可能性もあるのでご了承下さい。
うちのサーバーでは Web スペースを無償で貸し出ししていたりする。
その時にユーザー名は決めて貰うんだけど、パスワードは? と聞き出すと
大概は自分が普段使っていたり憶えやすい物を言ってしまうと思う。
それじゃちと貸す人が付けやすいパスワードが分かってしまう。
誰に言う物でもないし言ってはいけない事だけど、自分が知っているのも
気持ちが悪いということで、こっちから生成して上げることにしていた。
これは毎回コマンドラインから 1 行野郎でコマンド叩いてたけど、面倒だから
Shell Script を書いてしまうかーと 10 分作業。
このスクリプトの手法だとユーザがパスワードを忘れたと言われてもこっちから
再設定せずに初期発行したパスワードを伝えることが出来る。
アル意味危険な生成方法ではあるが、ユーザアカウント名からパスワードを
生成するのであります。
それなもので、公開してみるスクリプトはうちのサーバーとはパラメータ変えてます。
#/bin/sh
#
# username encode to password
#
# Last modified 2007.07.18
USERNAME=$1
if [ -z ${USERNAME} ]; then
printf "Usage: $0 USERNAME\n";
exit 1;
fi
if [ -z $2 ]; then
printf "Username : ${USERNAME}\n"
printf "Password : "
fi
printf "${USERNAME}" | nkf -MB | sha1sum | cut -b 1,3,5,11,13,15,17,19
ただこれだけ。
単純に引数でユーザ名を与えてやって、BASE64 エンコしてあげる。
さらにエンコされた物の SHA1SUM を取って上げて、出力された物からランダムに文字を抜いて
STDOUT 経由で出力してあげるだけ。
ユーザ名として扱えない文字の禁則処理を入れていないのは手抜きです。
第 2 引数に何か与えると生成されたパスのみが出力されるようにしてみた (2007/07/18 6:10)
これで以下のオペでユーザー追加が完了する。
# useradd hoge
# ./makepassword.sh hoge 1 | passwd –stdin hoge
他にも Apache のログを毎月 tar.gz と玉にまとめる物もかいてたりして最近は Shell で面倒な事を
自動化するって事に嵌ってます (笑
# というか、WordPress で記事かいてるとき、Pre タグの中まで勝手にエンティティしたり改行つけたりとか
# まじ勘弁してください (汗
コメント