#!/bin/sh
cd /usr/spool/chsdata
PWDF=password_fi
if [ "$1" = "" ] ; then
  echo "usage: chsftpchg_passwd <password>"
  exit 1
fi
HNAME=`hostname | cut -d . -f 1`
if [ "$2" != "" ] ; then
  HNAME=$2
  cd $HNAME
  PWDF=../$PWDF
else
  grep $HNAME $PWDF > chs_temp
  mv chs_temp $PWDF
fi
LINE=`cat $PWDF | grep $HNAME`
HSYS=`echo $LINE | cut -d : -f 1`
UNAME=`echo $LINE | cut -d : -f 2` ; LNAME=`crypt $1 $UNAME`
PWORD=`echo $LINE | cut -d : -f 3` ; LWORD=`crypt $1 $PWORD`
TSYS=`echo $LINE | cut -d : -f 4`
NWORD=`echo $HNAME | cut -c 1-3``date +"%Y%j"`
echo "----- "`date`" -----" >> chsftpchg_passwd.log
echo Password change attempt >> chsftpchg_passwd.log
ftp -nv <<EOF > chgpwd_log 2>&1
  open $TSYS
  user $LNAME $LWORD/$NWORD/$NWORD
  quit
EOF
cat chgpwd_log >> chsftpchg_passwd.log
grep "230-Password has been changed." chgpwd_log > chs_temp
if [ "`cat chs_temp`" = "" ] ; then
  echo "... Failed to change password" >> chsftpchg_passwd.log
else
  echo "... Password has been changed" >> chsftpchg_passwd.log
  if [ "$2" != "" ] ; then
    grep -v -e $HNAME $PWDF > npwdf
    NWORD=`crypt $1 $NWORD`
    echo $HSYS:$UNAME:$NWORD:$TSYS >> npwdf
    mv npwdf $PWDF
  else
    echo $HSYS:$UNAME:$NWORD:$TSYS > $PWDF
  fi
  echo "... Password file has been updated" >> chsftpchg_passwd.log
fi
rm chs_temp
