パスワードハッシュ生成スクリプト(Solaris10)

タカさん

2013年09月29日 14:31

暇だったのでちょっと遊びで作ってみました
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


関連記事