summaryrefslogtreecommitdiffstats
path: root/zenmap/install_scripts/unix/su-to-zenmap.sh
blob: 9216a4e2001204a100a73b280fd236bdb2c1de2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/sh
#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"

quote () { printf %s\\n "$1" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/'/" ; }

for i in "$@"; do
  COMMAND="$COMMAND $(quote "$i")"
done

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";;
      kdesu) kdesu -u "$PRIV" -c "$COMMAND";;
      kde4su) /usr/lib/kde4/libexec/kdesu -u "$PRIV" -c "$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