Page 1 of 1

[SOLVED] Zenmap (as root) & gksu -u

Posted: 21. Aug 2011, 13:57
by laprjns
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:

Code: Select all

gksu -u "$PRIV" "$COMMAND"
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

Code: Select all

gksu "$COMMAND"
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:

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
Thanks
Rich

Re: Zenmap (as root) & gksu -u

Posted: 22. Aug 2011, 19:18
by pwatk
gksu isn't actually installed, it's just a script I wrote for launching ktsuss:

Code: Select all

#!/bin/sh
# /usr/bin/gksu

PATH="${PATH}:/sbin:/usr/sbin:/usr/local/sbin"
CMD="$@"
BIN="$1"

if [ -x "`type -path ktsuss`" ]; then
  KTSUSS="`type -path ktsuss` -u root"
else
  echo "$(basename $0): \`ktsuss' command not found"
  exit 1
fi

if [ "$UID" = "0" ]; then
  KTSUSS=""
fi

if [ -x "`type -path $BIN`" ]; then
  eval "$KTSUSS" "$CMD"
else
  echo "$(basename $0): \`$BIN' command not found"
  exit 1
fi
I'm busy with a few other things at the moment but I'll try to write in a -u option and post it to the bugtracker in the next few days

Re: Zenmap (as root) & gksu -u

Posted: 22. Aug 2011, 23:54
by pwatk

Re: [SOLVED] Zenmap (as root) & gksu -u

Posted: 23. Aug 2011, 09:33
by gapan
Thanks pwatk. :)

Re: [SOLVED] Zenmap (as root) & gksu -u

Posted: 23. Aug 2011, 11:38
by pwatk
I just couldn't leave it alone :) .

Re: [SOLVED] Zenmap (as root) & gksu -u

Posted: 23. Aug 2011, 12:52
by laprjns
Thank you. I'll give it a try when I get back from my business trip. I assume that it will be avaialble as an upgrade (slapt-get --upg).

Re: [SOLVED] Zenmap (as root) & gksu -u

Posted: 23. Aug 2011, 13:02
by gapan
It is already.