diff --git a/wmde-rp-common.sh b/wmde-rp-common.sh index ba126cc..125775f 100644 --- a/wmde-rp-common.sh +++ b/wmde-rp-common.sh @@ -1,11 +1,52 @@ +WMDERPDIR=.wmde-osync + +LOGFILE=$HOMEDIR/$WMDERPDIR/usersync.log +PIDFILE=$HOMEDIR/$WMDERPDIR/usersync.pid +FIRSTSYNC=$HOMEDIR/$WMDERPDIR/firstsync-done +FULLSYNC=$HOMEDIR/$WMDERPDIR/fullsync-done +CONFIGSYNC=$HOMEDIR/$WMDERPDIR/configsync-done + +HOMEDIR=$(getent passwd "$PAM_USER" | cut -d: -f6) + +create_wmderpdir () +{ +mkdir -p $HOMEDIR/$WMDERPDIR + LASTERROR=$? + if [ $LASTERROR -ne 0 ]; then + echo $$ > $CONFIGSYNC + echo $$ > $FULLSYNC + exit $LASTERROR + fi +} + +create_knonw_hosts_and_nfshomedir() +{ + KNOWNHOSTS=`$PREFIX/wmde-rp-generate-known-hosts.sh` + LASTERROR=$? + if [ $LASTERROR -ne 0 ]; then + echo $$ > $CONFIGSYNC + echo $$ > $FULLSYNC + exit $LASTERROR + fi -LOGFILE=$HOMEDIR/.wmdesync/usersync.log -PIDFILE=$HOMEDIR/.wmdesync/usersync.pid -FIRSTSYNC=$HOMEDIR/.wmdesync/firstsync-done -FULLSYNC=$HOMEDIR/.wmdesync/fullsync-done -CONFIGSYNC=$HOMEDIR/.wmdesync/configsync-done -SMALLFILESSYNC=$HOMEDIR/.wmdesync/smallfilessync-done + echo $KNOWNHOSTS > "$HOMEDIR/$WMDERPDIR/known_hosts" + LASTERROR=$? + if [ $LASTERROR -ne 0 ]; then + echo $$ > $CONFIGSYNC + echo $$ > $FULLSYNC + exit $LASTERROR + fi + + # The following creates users home directory on the nfs server if not already exists + ssh $SSHARGS $PAM_USER@$NFSSERVER /usr/bin/true + LASTERROR=$? + if [ $LASTERROR -ne 0 ]; then + echo $$ > $CONFIGSYNC + echo $$ > $FULLSYNC + exit $LASTERROR + fi +} diff --git a/wmde-rp-osync-ssh.sh b/wmde-rp-osync-ssh.sh new file mode 100644 index 0000000..05a5118 --- /dev/null +++ b/wmde-rp-osync-ssh.sh @@ -0,0 +1,32 @@ +#!/bin/sh +set -x + +. /etc/wmde-rp.conf + +USER=`whoami` +PAM_USER=$USER +PAM_TYPE=open_session + +. $PREFIX/wmde-rp-check-pam-user.sh +. $PREFIX/wmde-rp-common.sh + + +SSHARGS="-o UserKnownHostsFile=$HOMEDIR/$WMDERPDIR/known_hosts" + +create_wmderpdir + +if [ -f "$PIDFILE" ]; then + OLD_PID=`cat "$PIDFILE"` + if kill -0 "$OLD_PID" 2> /dev/null; then + echo "Usersync already running." >> $LOGFILE + exit 0 + fi +fi + +echo 0 > $CONFIGSYNC +echo 0 > $FULLSYNC +echo $$ > $PIDFILE + + +create_knonw_hosts_and_nfshomedir + diff --git a/wmde-rp-unison-ssh.sh b/wmde-rp-unison-ssh.sh index 15fe590..4fafe34 100755 --- a/wmde-rp-unison-ssh.sh +++ b/wmde-rp-unison-ssh.sh @@ -61,9 +61,6 @@ if [ $LASTERROR -ne 0 ]; then exit $LASTERROR fi - - - echo $KNOWNHOSTS > "$HOMEDIR/.wmdesync/known_hosts" LASTERROR=$? if [ $LASTERROR -ne 0 ]; then