Vraag & Antwoord
X programma als root starten
45 antwoorden
- die kun je zelf schrijven
dit is de brontekst van sux:
[code:1:e518e67f22]
#!/bin/bash
#
# /usr/X11R6/bin/sux A shell script to forward X authentication
# and run `su - root [options]'
#
# Note: sux is the abbrivation of `Substitute User with X11'
#
# Usage: sux [-c command] [-s shell] [-|-l] [[user] args]
#
# Copyright 2000 SuSE GmbH
# Copyright 2004 SuSE LINUX AG
# Author: Werner Fink <werner@suse.de>
#
# 2000/09/13: Avoid su staying around with magic cookie
# in process table due PAM.
# 2004/04/02: Use getent instead of yp tools.
#
export PATH=/usr/X11R6/bin/X11:$PATH
if test "+$(id -u)" = "$1" ; then
#
# Passsive part
#
unset XAUTHORITY || true
if test $# -lt 4 -o ! -e /proc/$$/fd/4 ; then
echo "${0##*/}: Missing id or cookie or DISPLAY" 1>&2
exit 1
fi
export SHELL="$3"
arg0=$2${SHELL##*/}
export DISPLAY="$4"
if test "$(hostname -f)" = "${4%:*}" ; then
displaynum=":${4#*:}"
host="${4%:*}"
if test "$(uname -n)" = "${host%%.*}" ; then
unixs="${host%%.*}/unix:${displaynum#*:}"
else
unixs="$(uname -n)/unix:${displaynum#*:}"
fi
unixf="${host}/unix:${displaynum#*:}"
tcpip="${host}:${displaynum#*:}"
else
host="${4%:*}"
unixs=""
unixf=""
# Workaround for ssh X11 forwarding/redirecting
if test "$host" = "localhost" ; then
tcpip="$(hostname)/unix:${DISPLAY#*:}"
else
tcpip="${DISPLAY}"
fi
fi
if test -n "$5" ; then
export SESSION_MANAGER="$5"
else
unset SESSION_MANAGER
fi
shift 5
xauth -qif <(exec cat 0<&4) extract >(exec xauth -q merge -) \
${unixs:+"$unixs"} \
${unixf:+"$unixf"} \
${tcpip:+"$tcpip"}
exec 4<&-
if test "$host" != "localhost" ; then
# local names first
for d in $unixs $unixf $tcpip ; do
unset x
x=$(xauth -qi nlist $d 2> /dev/null)
test ${#x} -ne 0 && break
done
unset x
case "$d" in */unix:*) DISPLAY=:${d#*:} ;; esac
unset d
fi
unset unixs unixf tcpip host || true
exec -a $arg0 $SHELL ${1+"$@"}
exit 1
fi
#
# Active part
#
if test -z "$DISPLAY" ; then
echo "${0##*/}: Missing DISPLAY variable" 1>&2
exit 1
fi
user=root
login=
command=
while test -z "${1%%-*}" -a -n "$1" ; do
if test ${#1} -eq 2 -a -n "${2%%-*}" -a "$1" != "-l" ; then
y="${1#-}${2}"; shift 2
else
y="${1#-}" ; shift 1
fi
case "$y" in
c*) command="${y#?}" ;;
s*) shell="${y#?}" ;;
l|"") login=- ;;
*)
echo "Usage: sux [-c command] [-s shell] [-|-l] [[user] args]" 1>&2
exit 1
esac
done
if test -n "$1" ; then
user=$1
shift
fi
id=$(id -u $user)
OIFS="$IFS"; IFS=":"
if type -p getent &> /dev/null ; then
pwline=($(getent passwd "${user}"))
else
pwline=($(cat /etc/passwd | grep "^${user}:"))
fi
IFS="$OIFS"
if test -n "$shell" && grep -q $shell /etc/shells &> /dev/null ; then
shell=$shell
else
shell="${pwline[6]}"
fi
if test -n "${DISPLAY%:*}" ; then
host="${DISPLAY%:*}"
else
host="$(hostname -f)"
fi
tcpip="${host}:${DISPLAY#*:}"
unset host
sessmng=""
if test -n "$SESSION_MANAGER" ; then
sessmng="$SESSION_MANAGER"
fi
# Gnome is broken
case "$WINDOWMANAGER" in
*gnome*) sessmng=""
esac
exec 4< ${XAUTHORITY:-$HOME/.Xauthority}
# Get rid of NFS ;^)
cat ${XAUTHORITY:-$HOME/.Xauthority} > /dev/null
exec -a su /bin/su -s /bin/bash $login – $user \
$0 +$id "$login" "$shell" "$tcpip" "$sessmng" ${command:+-c "$command"}
exit 1
#
# /usr/X11R6/bin/sux ends here
[/code:1:e518e67f22] - [quote:56c5eee3c5="Pinky & The Brain"]ehm, ik geloof niet dat ik helemaal vat wat jouw probleem is, maar je kunt gewoon in de console inloggen als root om vervolgens X te starten met 'startx'.[/quote:56c5eee3c5]
Noooo, da's niet de bedoeling heNiet verstandig om als root in x te verblijven, veel te veel moois om kapot te maken… De muis is soms een beetje een ongecontroleerd primitief dier wat dat betreft…
-Roeland - Ik draai x altijd als bilbo…. als ik dan als root een gui tool wil draaien dan ssh ik naar root@localhost…. en start dan in de console de app… x tunneling staat aan dus komt de output dan vervolgens op de display van bilbo
- Hoe start ik een grafisch programma (onder X) als root? Bijv. KWrite om configuratie-bestanden te editen.
Natuurlijk kan ik vanuit een terminal su doen, maar die terminal moet dan open blijven staan. Als ik die sluit, verdwijnt KWrite nl. ook weer. - ehm, ik geloof niet dat ik helemaal vat wat jouw probleem is, maar je kunt gewoon in de console inloggen als root om vervolgens X te starten met 'startx'.
- in X en Xconsole openen
dan [b:129a4ea292]su[/b:129a4ea292]
en vervolgens de nam van het progrmma (b.v. kwrite) intikken
maar zoals altijd zijn er diverse oplossingen. - Een X-programma als root starten doe je als volgt:
- [*:6c04cf9a4e]start de minicli via de toetsencombinatie [alt][f2] en typ [b:6c04cf9a4e]kdesu kwrite[/b:6c04cf9a4e]
[*:6c04cf9a4e]Voer het wachtwoord in als er om gevraagd wordt
[*:6c04cf9a4e]Wacht totdat kwrite is gestart
[/list:o:6c04cf9a4e]
als je kwrite vaak op die manier start kun je een pictogram aanmaken op je desktop/kde-menu.
Max
[edit]misschien dat het zo duidelijker is <img alt=";)" src="/plugins/sceditor/emoticons/wink.png" />[/edit] - > dan su
Alleen bij Suse is dat dan sux - Sorry dat ik het niet duidelijk heb verwoord. Nee, ik ben gewoon ingelogd als mezelf (dus niet als root) en ik werd onder X. Als ik een programma start, start het dus met als gebruiker mezelf.
Nu wil ik KWrite als root starten. Het enige wat ik kan verzinnen is een terminal opstarten (gebruiker: mijzelf), su, kwrite, maar dan moet ik die terminal dus open laten staan tijdens het gebruik van kwrite.
Kan dat niet anders? - KWrite als daemon starten. Ofterwijl [b:eebe585a3b]kwrite &[/b:eebe585a3b] uitvoeren, en vervolgens de terminal sluiten?
- [quote:ad5462c2bb="maximilaan"]start de minicli [alt][f2] en typ [b:ad5462c2bb]kdesu kwrite[/b:ad5462c2bb]
Voer het wachtwoord in als er om gevraagd wordt
Wacht totdat kwrite is gestart
als je kwrite vaak op die manier start kun je een pictogram aanmaken op je desktop/kde-menu.
Max[/quote:ad5462c2bb]
Dit is wat je wilt. En er is helemaal niets mis mee om een terminal open te laten staan. Dat is bij mij ook 95% van de tijd het geval. - [quote:6c383f47dd="Bilbo"]Ik draai x altijd als bilbo…. als ik dan als root een gui tool wil draaien dan ssh ik naar root@localhost…. en start dan in de console de app… x tunneling staat aan dus komt de output dan vervolgens op de display van bilbo[/quote:6c383f47dd]
Hé, dat klinkt stoer
Gaat dat zonder performence verlies ?
Zelf heb ik namelijk nog nooit iets 'grafisch' gedaan via ssh dus ik weet niet precies wat het inhoudt.
Als het goed is kan ik binnenkort ook op een shell-account van mij grafisch inloggen over het internet…ik ben beniewd - Zolang je op localhost blijft is dat zonder performence verlies, aangezien het niet over een fysiek netwerk hoeft, maar door de dummy lo gaat. Als je over internet een dergelijk geintje uithaalt levert dat wel performence verlies op, maar voor gewone apps is het meestal goed te doen (ook voor complete desktops btw). Het afspelen van een DVD over een ssh-tunnel is echter teveel voor het netwerk.
Overigens zou ik wel de autobackup functie van Kwrite uitzetten als je daarmee configfiles gaat editen, anders heb je overal een ~bestandsnaam erbij na het bewerken van de file. Het lijkt mij zoiezo handiger om ervoor te zorgen dat je alle root taken non-grafisch uit kan voeren, op het moment dat de X-server een keer weigert op te starten ben je anders al verloren. Er zijn bijvoorbeeld diverse commandline editors zoals vim, nano, mcedit en ed (lol). - [quote:b7dfc3fbd4="Marcel de Reus"]Er zijn bijvoorbeeld diverse commandline editors zoals vim, nano, mcedit en ed (lol).[/quote:b7dfc3fbd4]
Tja, het liefst had ik een goede editor zonder X. Maar…
vim –> ik weet dat niemand het hier met me eens is, maar dit is voor mij een verschrikking, ik ga het echt niet leren
nano –> staat er volgens mij niet op
mcedit –> je kunt niet eens op een normale manier selecteren en knippen/plakken
ed –> zou ik nog kunnen proberen, ken ik niet
Een "edit" zoals M$-DOS :-? zou perfect zijn… - [quote:b69170820e="Peter Willemsen"]Tja, het liefst had ik een goede editor zonder X. Maar…
vim –> ik weet dat niemand het hier met me eens is, maar dit is voor mij een verschrikking, ik ga het echt niet leren
nano –> staat er volgens mij niet op
mcedit –> je kunt niet eens op een normale manier selecteren en knippen/plakken
ed –> zou ik nog kunnen proberen, ken ik niet
Een "edit" zoals M$-DOS :-? zou perfect zijn…[/quote:b69170820e]
Misschien is emacs iets voor je? - vim is niet moeilijk, vi heeft mij zelfs gered toen mijn boot een keer verknalt was
- Bestaat er geen ncurses-gebaseerde editor?
- Max wat jij voorsteld is de werkwijze om een KDE prog als root te starten.
Das niet hetzelfde als een X applicatie.
niet iedereen draait KDE - [quote:057f27d441="capt.501"]Max wat jij voorsteld is de werkwijze om een KDE prog als root te starten.
Das niet hetzelfde als een X applicatie.
niet iedereen draait KDE[/quote:057f27d441]
Maar hij gebruikt wel kwrite :wink: - [quote:d86f98a4b0="Peter Willemsen"] nano –> staat er volgens mij niet op[/quote:d86f98a4b0] En pico? Nano (nano-1.2.4.tar.gz) is trouwens niet moeilijk om te compileren/installeren http://www.nano-editor.org/download.html
Beantwoord deze vraag
Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.