[SOLVED] Zenmap (as root) & gksu -u
Posted: 21. Aug 2011, 13:57
Trying to launch "Zenmap (as root)" from the menu results in nothing visually happening. Running this down, the desktop application file tries running the script /usr/share/zenmap/su-to-zenmap.sh. This script determines the appropriate graphical front end for su and uses it to launch zenmap with root permissions. Apparently this script determines that gksu is the appropriate front end on my XFCE system and then tries executing:with $PRIV = "root" and $COMMAND = "zenmap". However the -u option does not seem to be valid and results in an error.
Once I changed the above line in the script to it worked.
All the on line man pages seems to suggest that the -u option is supported but it does not work here. Here's the entire script including my modification, for reference:
Thanks
Rich
Code: Select all
gksu -u "$PRIV" "$COMMAND"
Once I changed the above line in the script to
Code: Select all
gksu "$COMMAND"
All the on line man pages seems to suggest that the -u option is supported but it does not work here. Here's the entire script including my modification, for reference:
Code: Select all
#!/bin/bash
#this code is bassed off of the debian su-to-root command
#Joost Witteveen <joostje@debian.org>
#Morten Brix Pedersen
#Bill Allombert <ballombe@debian.org>
PRIV=root
COMMAND="zenmap $@"
euid=$(id -u)
privid=$(id -u $PRIV)
if test "$euid" = "$privid"; then
$COMMAND
else
if test -z "$SU_TO_ROOT_X"; then
if which gksu >/dev/null 2>&1 ; then
SU_TO_ROOT_X=gksu
if test "X$KDE_FULL_SESSION" = "Xtrue" ; then
if which kdesu >/dev/null 2>&1 ; then
SU_TO_ROOT_X=kdesu
elif test -x /usr/lib/kde4/libexec/kdesu ; then
SU_TO_ROOT_X=kde4su
fi;
fi;
elif which kdesu >/dev/null 2>&1 ; then
SU_TO_ROOT_X=kdesu
elif test -x /usr/lib/kde4/libexec/kdesu ; then
SU_TO_ROOT_X=kde4su
elif which ktsuss >/dev/null 2>&1 ; then
SU_TO_ROOT_X=ktsuss
elif which xterm>/dev/null 2>&1 ;then
if which sudo>/dev/null 2>&1 ;then
SU_TO_ROOT_X=sdterm
else
SU_TO_ROOT_X=sterm
fi;
else
SU_TO_ROOT_X=su-to-root
fi
fi
case $SU_TO_ROOT_X in
# gksu) gksu -u "$PRIV" "$COMMAND";;
gksu) gksu "$COMMAND";;
kdesu) kdesu -u "$PRIV" "$COMMAND";;
kde4su) /usr/lib/kde4/libexec/kdesu -u "$PRIV" "$COMMAND";;
ktsuss) ktsuss -u "$PRIV" "$COMMAND";;
# As a last resort, open a new xterm use sudo/su
sdterm) xterm -e "sudo -u $PRIV $COMMAND";;
sterm) xterm -e "su -l $PRIV -c $COMMAND";;
esac;
fi
Rich