• 追加された行はこの色です。
  • 削除された行はこの色です。
  • Server/Tools/autochgpw へ行く。

#contents

*概要 [#u4a21bc1]
リストに列挙したユーザすべてのパスワードを再登録します。
このコンテンツの「tips集」にある「パスワード自動発行ツール」を予め用意しておいてください。
当然、rootで実行しますので、使用の際は十分注意してください。

*ソースコード [#ge2f6a51]
 #!/usr/local/bin/bash 
 
 #---------------------------------------
 #  autochgpw.sh -
 #  リストに挙げた全ユーザのパスワードを
 #  再設定するツール
 #
 #  Ver.0.1
 #  by myasu 2002
 #---------------------------------------
 
 #一時的に生成するpasswdコマンド自動化のためのexpectのスクリプト
 FILE_EXPECT="tmppw.exp"
 
 #使用するコマンドの設定
 C_MAKEPASSWD="/home/myasu/ap/bin/makepasswd"     #パスワード生成用
 C_CAT="/usr/local/bin/cat"
 
 #ヘルプ
 function _HELP()
 {
 	echo "autochgpw.sh - リストに挙げた全ユーザのパスワードを再設定するツール"
 	echo "  usage:"
 	echo "    autochgpw.sh "
 	echo "       一行ごとにパスワードを変更したいユーザ名を並べたファイル。"
 	echo ""
 	echo "注意:一般ユーザでは実行できません。"
 	echo "注意:ウィンドウズ側のパスワード関連のポリシー設定に注意!"
 	echo "      実行中はパスワードポリシーを無効にしておく方が無難"
 }
 
 #-------------------
 #メイン処理
 
 #引数のチェック
 if [ $# != 1 ]; then
 	#引数にユーザーリストが与えられていないとき
 	#ヘルプを表示して終了
 	_HELP
 	exit 1
 fi
 
 #ユーザ名&パスワード結合ファイルの生成
 FILE_USERPASSWD="$1.csv"
 touch $FILE_USERPASSWD
 chmod 600 $FILE_USERPASSWD
 
 #ユーザ名&パスワード結合ファイルが存在するとき
 if [ -f $FILE_USERPASSWD ];then
 	#ファイルを削除
 	rm -f $FILE_USERPASSWD
 fi
 
 #進行状況表示用
 #echo -n "進行状況:"
 
 for BUF_USERNAME in `$C_CAT $1`
 do
 
 #  echo -n "*"
 
   #パスワードの生成
   BUF_PASSWD=`$C_MAKEPASSWD 8 2`
 
   #ユーザ名とパスワードとをコンマで結合して出力
   echo "$BUF_USERNAME,$BUF_PASSWD" >> $FILE_USERPASSWD
 
   #expect作業用スクリプトが存在すれば削除
   if [ -f $FILE_FILE_EXPECT ];then
 	  rm -f $FILE_EXPECT
   fi
 
   #expect作業用スクリプトを生成
   echo "#!/usr/local/bin/expect --" > $FILE_EXPECT
   echo "spawn passwd $BUF_USERNAME" >> $FILE_EXPECT
   echo 'expect "*password:"' >> $FILE_EXPECT
   echo "send   '$BUF_PASSWD\r'" >> $FILE_EXPECT
   echo 'expect "*password:"' >> $FILE_EXPECT
   echo "send   '$BUF_PASSWD\r'" >> $FILE_EXPECT
   echo "expect eof" >> $FILE_EXPECT
 
   #実行権限を与えて、また、無関係のユーザから見えないようにする
   chmod 700 $FILE_EXPECT
 
   #expect実行
   $FILE_EXPECT
 
   #少し待ち時間を挿入
   sleep 2
 
 done
 
 echo ""
 
 #expect作業用スクリプトが存在すれば削除
 if [ -f $FILE_FILE_EXPECT ];then
 	rm -f $FILE_EXPECT
 fi


RIGHT:2005-07-12 14:24:35 (火)
----
[[家サーバ管理帳]]
トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS