commit f0250901ac3ecef397bd86782ebbc3ced7f0d502 Author: David Goulet dgoulet@ev0ke.net Date: Mon Mar 3 15:04:43 2014 -0500
Add -u/-p/-d to torsocks script
The -u, --user and -p, --pass are for the SOCKS5 authentication where -d, --debug is to set torsocks in DEBUG mode.
Improve the usage output and make sure torsocks on/off is being sourced else exit with error.
Signed-off-by: David Goulet dgoulet@ev0ke.net --- src/bin/torsocks.in | 125 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 90 insertions(+), 35 deletions(-)
diff --git a/src/bin/torsocks.in b/src/bin/torsocks.in index 9abc5e8..a392d0b 100644 --- a/src/bin/torsocks.in +++ b/src/bin/torsocks.in @@ -100,7 +100,9 @@ torify_app () # NEVER remove that line or else nothing it torified. set_ld_preload
- if [ -z $app_path ]; then + if [ -z $1 ]; then + echo "Please provide an application to torify." >&2 + elif [ -z $app_path ]; then echo "ERROR: $1 cannot be found." >&2 exit 1 elif [ -u $app_path -o -g $app_path ]; then @@ -123,14 +125,32 @@ usage () echo " -h, --help Show this help" echo " --shell Spawn a torified shell" echo " --version Show version" - echo " on, off Add or remove torsocks library from @LDPRELOAD@" - echo " show, sh Show the current value of the @LDPRELOAD@" + echo " -d, --debug Set debug mode." + echo " -u, --user NAME Username for the SOCKS5 authentication" + echo " -p, --pass NAME Password for the SOCKS5 authentication" + echo " on, off Set/Unset your shell to use Torsocks by default" + echo " Make sure to source the call when using this option. (See Examples)" + echo " show, sh Show the current value of the LD_PRELOAD" echo "" - echo "Example:" + echo "Examples:" + echo "" + echo "Simple use of torsocks with SSH" echo " $ torsocks ssh user@host.com -p 1234" echo "" + echo "Set your current shell in Tor mode." + echo " $ . torsocks on" + echo "" echo "Please see torsocks(1), torsocks.conf(5) and torsocks(8) for more information." +}
+# Check if we are being sourced. +check_script_sourced() +{ + if [ "$_" = "$0" ]; then + echo "Torsocks MUST be sourced for this command to work" >&2 + echo " $ . torsocks $1" >&2 + exit 1 + fi }
if [ $# -eq 0 ] ; then @@ -144,34 +164,69 @@ if [ ! -f $SHLIB ]; then exit fi
-case "$1" in - on) - set_ld_preload - ;; - off) - export @LDPRELOAD@=`echo -n $@LDPRELOAD@ | sed "s#$SHLIB *##"` - if [ -z "$@LDPRELOAD@" ]; then - unset @LDPRELOAD@ - case "$OSTYPE" in - darwin*) - unset DYLD_FORCE_FLAT_NAMESPACE - ;; - esac - fi - ;; - show|sh) - echo "@LDPRELOAD@="$@LDPRELOAD@"" - ;; - -h|--help|-?) - usage - ;; - --shell) - tor_shell - ;; - --version) - echo "Torsocks @VERSION@" - ;; - *) - torify_app "$@" - ;; -esac +while true; +do + case "$1" in + on) + check_script_sourced $1 + set_ld_preload + echo "Tor mode activated. Every command will be torified for this shell." + break + ;; + off) + check_script_sourced $1 + export @LDPRELOAD@=`echo -n $@LDPRELOAD@ | sed "s#$SHLIB *##"` + if [ -z "$@LDPRELOAD@" ]; then + unset @LDPRELOAD@ + case "$OSTYPE" in + darwin*) + unset DYLD_FORCE_FLAT_NAMESPACE + ;; + esac + fi + echo "Tor mode deactivated. Command will NOT go through Tor anymore." + break + ;; + show|sh) + echo "@LDPRELOAD@="$@LDPRELOAD@"" + break + ;; + -h|--help) + usage + break + ;; + -u|--user) + if [ -z $2 ]; then + echo "Missing username to -u" >&2 + exit 1 + fi + export TORSOCKS_USERNAME=$2 + shift + ;; + -p|--pass) + if [ -z $2 ]; then + echo "Missing password to -p" >&2 + exit 1 + fi + export TORSOCKS_PASSWORD=$2 + shift + ;; + -d|--debug) + # Set full DEBUG with 5 being the highest possible level. + export TORSOCKS_LOG_LEVEL=5 + ;; + --shell) + tor_shell + break + ;; + --version) + echo "Torsocks @VERSION@" + break + ;; + *) + torify_app "$@" + break + ;; + esac + shift +done
tor-commits@lists.torproject.org