#!/bin/bash # # This script will set-up added users. # # Written by Alessandro Lo-Presti (Agilo). # E-mail: agilo3@gmail.com # UDEBUG=1; # uncomment to enable debugging. UTMPDIR="/tmp" # Temporary directory. if [ "$1" == "postinstall" ]; then [ $UDEBUG ] && echo "DEBUG: Post-install started."; [ $UDEBUG ] && echo "DEBUG: Step 3 - Verifying if a user was added."; if [ "$(diff /etc/passwd $UTMPDIR/passwd.old | grep '<')" ]; then [ $UDEBUG ] && echo "DEBUG: At least one line changed."; if [ $(diff /etc/passwd $UTMPDIR/passwd.old | grep "<" | wc -l) -gt 1 ]; then [ $UDEBUG ] && echo "DEBUG: Multiple lines have changed."; for i in $(diff /etc/passwd $UTMPDIR/passwd.old | grep "<" | awk -F":" '{print $6}'); do [ $UDEBUG ] && echo "DEBUG: Step 4 - Processing: $i"; [ $UDEBUG ] && echo "DEBUG: Step 4.1 - Removing old home dir."; gksudo "mv $i /home/oldusers/" [ $UDEBUG ] && echo "DEBUG: Step 4.2 - Copying new home dir."; gksudo "cp -r /home/templateuser $i" [ $UDEBUG ] && echo "DEBUG: Step 4.3 - Setting up rights to new home dir."; gksudo "chown -R $(echo $i | awk -F"/" '{print $3}'):users $i" done else [ $UDEBUG ] && echo "DEBUG: Only one line changed."; USERHOMEDIR="$(diff /etc/passwd $UTMPDIR/passwd.old | grep "<" | awk -F":" '{print $6}')"; [ $UDEBUG ] && echo "DEBUG: Step 4 - Processing: $USERHOMEDIR"; [ $UDEBUG ] && echo "DEBUG: Step 4.1 - Removing old home dir."; gksudo "mv $USERHOMEDIR /home/oldusers/" [ $UDEBUG ] && echo "DEBUG: Step 4.2 - Copying new home dir."; gksudo "cp -r /home/templateuser $USERHOMEDIR" [ $UDEBUG ] && echo "DEBUG: Step 4.3 - Setting up rights to new home dir."; gksudo "chown -R $(echo $USERHOMEDIR | awk -F"/" '{print $3}'):users $USERHOMEDIR" fi else [ $UDEBUG ] && echo "DEBUG: Nothing to do, no users were added. Exiting normally." fi [ $UDEBUG ] && echo "DEBUG: Deleting copied passwd file." rm $UTMPDIR/passwd.old else [ $UDEBUG ] && echo "DEBUG: Step 1 - Copying passwd for differentiation."; [ -e $UTMPDIR ] && [ -w $UTMPDIR ] && cp /etc/passwd $UTMPDIR/passwd.old [ $? != 0 ] && echo "Unable to copy passwd file, exiting." && exit 1; [ $UDEBUG ] && echo "DEBUG: Step 2 - Running users-admin and usersetup."; gksudo users-admin && gksudo $0 postinstall fi