From b3369e4e8d02e696fefdb8bda79e383717fcb843 Mon Sep 17 00:00:00 2001 From: Tslil Clingman Date: Tue, 11 Aug 2015 15:19:52 +0200 Subject: May as well automate creation --- runas | 59 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 10 deletions(-) diff --git a/runas b/runas index f9b11f6..b11a321 100755 --- a/runas +++ b/runas @@ -2,15 +2,54 @@ # Simple script to run graphical programme as a separate user -# The user is expected to have a script $1 which does, roughly: -# cd /home/USERNAME -# cp /tmp/.Xauthority . -# shred -v /tmp/.Xauthority -# DISPLAY=:0 some/graphical/programme +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 +} -cp .Xauthority /tmp -chmod 606 /tmp/.Xauthority - -su -l $1 -c /home/$1/$1 +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 +} -rm /tmp/.Xauthority +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; -- cgit v1.2.3