パスワードハッシュ生成スクリプト(Solaris10)
暇だったのでちょっと遊びで作ってみました
Solaris10でのみ動作確認しましたが
きっちり動いてます
debianでもためしてみましたが
htpasswdコマンドが存在していて
指定してあげればLinuxでも動きます
ただしSolaris10とちがって
生成されるハッシュ値をLinuxにあわせないと
使い物にはなりませんが・・・
うまく動いたらハッシュの書き変わったshadowファイルもできあがるので
diffしてshadow.datと内容くらべてみてください
いちおうVM環境では書き換えたshadowファイルで
きっちり認証できましたw
準備するもの
本物のshadowファイルを書き換えるわけにはいかないので
shadowファイルをコピーしてshadow.datを作り
ShellScriptと同じディレクトリに置く
ファイルのオーナーもShellScriptを動かすユーザーに代えましょう
あとはShellScriptを打ち込んで動かしてみるだけ
ちょっと中の処理をいじれば
Solaris10のパスワード変更をShellScriptで
自動化してやれそうですが
こわいので出来ませんw
ShellScript名 : pwHash.sh
#!/bin/bash
#
#password hash make script
#2013.09.29
clear
WORKDIR=`pwd`
CMD=/usr/apache2/htpasswd
file_read(){
#shadow ファイルの読み込み
no=1
while read LINE
do
WORD[$no]=${LINE}
User_decision
let no++
done < $WORKDIR/shadow.dat
if [ "${user_flg}" = "0" ]; then
echo "ユーザが存在しませんでした"
exit
fi
}
field_cut(){
#fieldの切り分けとチェック
for((no2=3; no2 $WORKDIR/shadow
for((x=1; x> $WORKDIR/shadow
}
echo "生成されたshadowファイルを表示します"
echo "push enter key"; echo
more $WORKDIR/shadow
}
echo -n "対象ユーザ名を入力してください?"
read USER; user_flg=0
file_read
echo -n "ハッシュ生成文字列を入力してください?"
read STR
pw_replace
echo "生成されたハッシュ: $PW"
echo "パスワードを置き換えます"
echo
echo "push enter key"; read stop
echo
echo "BEFORE : $FIELD_TMP"
echo "AFTER : ${WORD[$NO_TMP]}"
line_dsp
関連記事