#!/usr/bin/env sh # Simple script to run graphical programme as a separate user mkmkshrc () { cat >$1 <<'EOF' export LANGUAGE="en_ZA:en_GB:en" export LOCALE="en_ZA.UTF-8" export PATH=$PATH:. export HISTFILE=$HOME/.histfile export HISTSIZE=8192 umask 077 set -o emacs set -o utf8-mode PS1='${ local e=$?; local r=""; (( $e )) && r="<$e>"; local p=$(echo ${PWD:-?} | sed "s#$HOME#~#;s#.*/\(.*\)/\(.*\)#\1/\2#"); local d=$(date +%H.%M.%S); echo -n "USERNAME:[$p]($d)$r> "; return $e }' PS4='[$EPOCHREALTIME]' stty -ixon alias rm='rm -i' alias ls='ls --group-directories-first -vhF --color=always' alias mg='/usr/bin/mg -n' EOF } mkhandler() { cat >$1 <<'EOF' #!/usr/bin/env sh cd /home/USERNAME cp /tmp/.Xauthority . shred -v /tmp/.Xauthority export DISPLAY=:0 # Graphical programme code after this line EOF } if [ "$1" == "-n" ]; then echo Creating skeleton files for new user $2 ... rm /tmp/skel -rf > /dev/null mkdir /tmp/skel mkmkshrc /tmp/skel/.mkshrc mkhandler /tmp/skel/$2 sed -i "s/USERNAME/$2/" /tmp/skel/.mkshrc /tmp/skel/$2 chmod 700 /tmp/skel/$2 $EDITOR /tmp/skel/$2 sudo useradd -m -G audio -s /usr/bin/mksh -k /tmp/skel $2 sudo passwd $2 else cp .Xauthority /tmp chmod 606 /tmp/.Xauthority su -l $1 -c /home/$1/$1 rm /tmp/.Xauthority fi;