Aufgrund meines an anderer Stelle berichteten Fehler "Bad-MAC-Read" habe ich heute den ganzen Morgen an einem Script gebastelt, um eine Anwendung über einen anderen User zu starten. Die KDE kann den User-Wechsel ja via Desktop-Starter von Hause aus, aber ich muss jedes Mal ein PWD eingeben... und das würde ich gerne sparen. Und ich hatte die Idee, dieses Script unabhängig vom Desktop-Environment zu gestalten... das heisst, gleiche Lösung für KDE, Xfce und Lxde.... aber es klappt ums Verrecken nicht. Und jetzt hoffe ich auf Hilfe.
Aus dieser Debian-Wiki-Seite habe ich die Vorlage für mein Script entnommen.
So sieht jetzt mein "Universal-Script" aus, um eine beliebige Anwendung mit anderem User zu starten:
Code: Alles auswählen
#! /bin/bash
# Script: ChangeUserAppStart = chuseras (18.03.2015)
#
# Aufrufparameter
# 1. User
# 2. Programmname
# 3. Parameter für das Programm
#
#=========================================================================================================================================
#
# adduser --system --disabled-login --ingroup $USER --shell /bin/false inet ---> in Gruppe root hinzufügen = falsch
# adduser --system --disabled-login --ingroup thomas --shell /bin/false inet
#
# add sudoers: thomas ALL=(inet)NOPASSWD:ALL
# starter: /usr/local/bin/chuseras inet /usr/bin/palemoon %u
#
#=========================================================================================================================================
debuglog=/home/thomas/culog
d=`date +%d-%m-%Y-%H-%M`
User=$1
App=$2
shift 2
#Debug
#echo $d "User :" $User >>$debuglog
#echo $d "App :" $App >>$debuglog
#echo $d "Parm :" $@ >>$debuglog
#exit
if [ ! -z $KDE_SESSION_VERSION ]; then
# echo $d "KDE_SESSION_VERSION:" $KDE_SESSION_VERSION >>$debuglog
kdesudo -u $User -c $App "$@"
else
# echo $d "NON_KDE_SESSION" >>$debuglog
sudo -H -u $User $App "$@"
fi
exit
Code: Alles auswählen
/usr/local/bin/chuseras inet /opt/palemoon/palemoon
Code: Alles auswählen
thomas@ThomasPC:~$ /usr/local/bin/chuseras inet /opt/palemoon/palemoon
xauth: timeout in locking authority file /home/inet/.Xauthority
/usr/bin/xauth: timeout in locking authority file /home/inet/.Xauthority
(process:6964): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
No protocol specified
No protocol specified
Error: cannot open display: :0
Code: Alles auswählen
thomas@ThomasPC:~$ /opt/palemoon/palemoon
(process:6967): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
thomas@ThomasPC:~$
Code: Alles auswählen
thomas, inet ALL=(inet) NOPASSWD: /usr/bin/palemoon
thomas, inet ALL=(inet) NOPASSWD: /usr/bin/iceweasel
thomas, inet ALL=(inet) NOPASSWD: /opt/palemoon/palemoon