[tor-bugs] #4762 [Tor Bridge]: I'm using Linux Puppy which runs as ROOT always. Your install script cant be run in root.

Tor Bug Tracker & Wiki torproject-admin at torproject.org
Thu Dec 22 16:56:56 UTC 2011


#4762: I'm using Linux Puppy which runs as ROOT always.  Your install script cant
be run in root.
--------------------------------+-------------------------------------------
 Reporter:  ChevyVan            |          Owner:                  
     Type:  defect              |         Status:  new             
 Priority:  normal              |      Milestone:                  
Component:  Tor Bridge          |        Version:  Tor: unspecified
 Keywords:  installation error  |         Parent:                  
   Points:                      |   Actualpoints:                  
--------------------------------+-------------------------------------------
 Runa A. Sandvik via RT to chevyvan (8 hours ago) show details
 On Thu Dec 22 07:53:48 2011, chevyvan at hushmail.com wrote:
 > I am running Puppy Linux. Which is always run as user Root.
 >
 > When I try to upgrade my current tor install to the latest version, I
 get error  "The Tor Browser Bundle should not be run as root. Exiting."
 So I commented out that part of the script (that tested for Root user and
 exited w. error) and re-ran the script.

 Now I get error "Videlia exited abnormally with error code 128"


 Please stop being so MicroSoft like, and trying to protect myself from
 myself.
 Been running as Root for a year now, and havent shot my self in the foot
 yet.
 I back up my data regularly, and run several diff OS's so even if U hose
 this install of Puppy OS, I can quickly recover.

 To my knowledge Puppy cant run as anything else but ROOT.

 Can you email me a script that will run your progs in my extract tar file
 of yours. as ROOT.

 =================
 Which script? Are you trying to use the Tor Browser Bundle or something
 else? I suggest that you open a ticket on our bug tracker about this;
 https://trac.torproject.org/projects/tor

 =================
 YES, it's the Tor Browser Bundle.  When I first launch Tor, I get a pop up
 that says there is a newer version.  I click on the link and select Linux
 64 bit download.  I get a tar file, extract it and there is a script
 called "/tor-browser_en-US/start-tor-browser"

 inserted below are it's contents.

 #!/bin/sh
 #
 # GNU/Linux does not really require something like RelativeLink.c
 # However, we do want to have the same look and feel with similar
 features.
 #
 # To run in debug mode simply pass --debug
 #
 # Copyright 2011 The Tor Project.  See LICENSE for licensing information.

 complain_dialog_title="Tor Browser Bundle"

 # First, make sure DISPLAY is set.  If it isn't, we're hosed; scream
 # at stderr and die.
 if [ "x$DISPLAY" = "x" ]; then
         echo "$complain_dialog_title must be run within the X Window
 System." >&2
         echo "Exiting." >&2
         exit 1
 fi

 # Determine whether we are running in a terminal.  If we are, we
 # should send our error messages to stderr...
 ARE_WE_RUNNING_IN_A_TERMINAL=0
 if [ -t 1 -o -t 2 ]; then
         ARE_WE_RUNNING_IN_A_TERMINAL=1
 fi

 # ...unless we're running in the same terminal as startx or xinit.  In
 # that case, the user is probably running us from a GUI file manager
 # in an X session started by typing startx at the console.
 #
 # Hopefully, the local ps command supports BSD-style options.  (The ps
 # commands usually used on Linux and FreeBSD do; do any other OSes
 # support running Linux binaries?)
 ps T 2>/dev/null |grep startx 2>/dev/null |grep -v grep 2>&1 >/dev/null
 not_running_in_same_terminal_as_startx="$?"
 ps T 2>/dev/null |grep xinit 2>/dev/null |grep -v grep 2>&1 >/dev/null
 not_running_in_same_terminal_as_xinit="$?"

 # not_running_in_same_terminal_as_foo has the value 1 if we are *not*
 # running in the same terminal as foo.
 if [ "$not_running_in_same_terminal_as_startx" -eq 0 -o \
      "$not_running_in_same_terminal_as_xinit" -eq 0 ]; then
         ARE_WE_RUNNING_IN_A_TERMINAL=0
 fi

 # Complain about an error, by any means necessary.
 # Usage: complain message
 # message must not begin with a dash.
 complain () {
         # Trim leading newlines, to avoid breaking formatting in some
 dialogs.
         complain_message="`echo "$1" | sed '/./,$!d'`"

         # If we're being run in a terminal, complain there.
         if [ "$ARE_WE_RUNNING_IN_A_TERMINAL" -ne 0 ]; then
                 echo "$complain_message" >&2
                 return
         fi

         # Otherwise, we're being run by a GUI program of some sort;
         # try to pop up a message in the GUI in the nicest way
         # possible.
         #
         # In mksh, non-existent commands return 127; I'll assume all
         # other shells set the same exit code if they can't run a
         # command.  (xmessage returns 1 if the user clicks the WM
         # close button, so we do need to look at the exact exit code,
         # not just assume the command failed to display a message if
         # it returns non-zero.)

         # First, try zenity.
         zenity --error \
                 --title="$complain_dialog_title" \
                 --text="$complain_message"
         if [ "$?" -ne 127 ]; then
                 return
         fi

         # Try kdialog.
         kdialog --title "$complain_dialog_title" \
                 --error "$complain_message"
         if [ "$?" -ne 127 ]; then
                 return
         fi

         # Try xmessage.
         xmessage -title "$complain_dialog_title" \
                 -center \
                 -buttons OK \
                 -default OK \
                 -xrm '*message.scrollVertical: Never' \
                 "$complain_message"
         if [ "$?" -ne 127 ]; then
                 return
         fi

         # Try gxmessage.  This one isn't installed by default on
         # Debian with the default GNOME installation, so it seems to
         # be the least likely program to have available, but it might
         # be used by one of the 'lightweight' Gtk-based desktop
         # environments.
         gxmessage -title "$complain_dialog_title" \
                 -center \
                 -buttons GTK_STOCK_OK \
                 -default OK \
                 "$complain_message"
         if [ "$?" -ne 127 ]; then
                 return
         fi
 }

 # if [ "`id -u`" -eq 0 ]; then
 #       complain "The Tor Browser Bundle should not be run as root.
 Exiting."
 #       exit 1
 # fi

 usage_message="usage: $0 [--debug]"
 if [ "$#" -eq 1 -a \( "x$1" = "x--debug" -o "x$1" = "x-debug" \) ]; then
         debug=1
         printf "\nDebug enabled.\n\n"
 elif [ "$#" -eq 1 -a \( "x$1" = "x--help" -o "x$1" = "x-help" \) ]; then
         echo "$usage_message"
         exit 0
 fi

 # If XAUTHORITY is unset, set it to its default value of $HOME/.Xauthority
 # before we change HOME below.  (See xauth(1) and #1945.)  XDM and KDM
 rely
 # on applications using this default value.
 if [ -z "$XAUTHORITY" ]; then
         XAUTHORITY=~/.Xauthority
         export XAUTHORITY
 fi

 # If this script is being run through a symlink, we need to know where
 # in the filesystem the script itself is, not where the symlink is.
 myname="$0"
 if [ -L "$myname" ]; then
         # XXX readlink is not POSIX, but is present in GNU coreutils
         # and on FreeBSD.  Unfortunately, the -f option (which follows
         # a whole chain of symlinks until it reaches a non-symlink
         # path name) is a GNUism, so we have to have a fallback for
         # FreeBSD.  Fortunately, FreeBSD has realpath instead;
         # unfortunately, that's also non-POSIX and is not present in
         # GNU coreutils.
         #
         # If this launcher were a C program, we could just use the
         # realpath function, which *is* POSIX.  Too bad POSIX didn't
         # make that function accessible to shell scripts.

         # If realpath is available, use it; it Does The Right Thing.
         possibly_my_real_name="`realpath "$myname" 2>/dev/null`"
         if [ "$?" -eq 0 ]; then
                 myname="$possibly_my_real_name"
         else
                 # realpath is not available; hopefully readlink -f works.
                 myname="`readlink -f "$myname" 2>/dev/null`"
                 if [ "$?" -ne 0 ]; then
                         # Ugh.
                         complain "start-tor-browser cannot be run using a
 symlink on this operating system."
                 fi
         fi
 fi

 # Try to be agnostic to where we're being started from, chdir to where
 # the script is.
 mydir="`dirname "$myname"`"
 test -d "$mydir" && cd "$mydir"

 # If ${PWD} results in a zero length HOME, we can try something else...
 if [ ! "${PWD}" ]; then
         # "hacking around some braindamage"
         HOME="`pwd`"
         export HOME
         surveysays="This system has a messed up shell.\n"
 else
         HOME="${PWD}"
         export HOME
 fi

 if ldd ./App/Firefox/firefox-bin | grep -q "libz\.so\.1.*not found"; then
         LD_LIBRARY_PATH="${HOME}/Lib:${HOME}/Lib/libz"
 else
         LD_LIBRARY_PATH="${HOME}/Lib"
 fi

 LDPATH="${HOME}/Lib/"
 export LDPATH
 export LD_LIBRARY_PATH

 if [ "${debug}" ]; then
         printf "\nStarting Vidalia now\n"
         cd "${HOME}"
         printf "\nLaunching Vidalia from: `pwd`\n"
         # XXX Someday we should pass whatever command-line arguments we
 got
         # (probably filenames or URLs) to Firefox.
         ./App/vidalia --loglevel debug --logfile vidalia-debug-log \
         --datadir Data/Vidalia/
         printf "\nVidalia exited with the following return code: $?\n"
 fi

 # not in debug mode, run proceed normally
 printf "\nLaunching Tor Browser Bundle for Linux in ${HOME}\n"
 cd "${HOME}"
 # XXX Someday we should pass whatever command-line arguments we got
 # (probably filenames or URLs) to Firefox.
 ./App/vidalia --datadir Data/Vidalia/
 exitcode="$?"
 if [ "$exitcode" -ne 0 ]; then
         complain "Vidalia exited abnormally.  Exit code: $exitcode"
         exit "$exitcode"
 else
         printf '\nVidalia exited cleanly.\n'
 fi

-- 
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/4762>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list