#!/bin/sh # Wrapper script for use of the tsocks(8) transparent socksification library # # There are three forms of usage for this script: # # /usr/bin/tsocks program [program arguments...] # # This form sets the users LD_PRELOAD environment variable so that tsocks(8) # will be loaded to socksify the application then executes the specified # program (with the provided arguments). The following simple example might # be used to telnet to www.foo.org via a tsocks.conf(5) configured socks server: # # /usr/bin/tsocks telnet www.foo.org # # The second form allows for tsocks(8) to be switched on and off for a # session (that is, it adds and removes tsocks from the LD_PRELOAD environment # variable). This form must be _sourced_ into the user's existing session # (and will only work with bourne shell users): # # . /usr/bin/tsocks on # telnet www.foo.org # . /usr/bin/tsocks off # # Or # # source /usr/bin/tsocks on # telnet www.foo.org # source /usr/bin/tsocks off # # The third form creates a new shell with LD_PRELOAD set and is achieved # simply by running the script with no arguments # # /usr/bin/tsocks # # When finished the user can simply terminate the shell with 'exit' # # This script is originally from the debian tsocks package by # Tamas Szerb if [ $# = 0 ] ; then echo "$0: insufficient arguments" exit fi case "$1" in on) if [ -z "$LD_PRELOAD" ] then export LD_PRELOAD="/usr/lib/libtsocks.so" else echo $LD_PRELOAD | grep -q "/usr/lib/libtsocks\.so" || \ export LD_PRELOAD="/usr/lib/libtsocks.so $LD_PRELOAD" fi ;; off) export LD_PRELOAD=`echo -n $LD_PRELOAD | sed 's/\/usr\/lib\/libtsocks.so \?//'` if [ -z "$LD_PRELOAD" ] then unset LD_PRELOAD fi ;; show|sh) echo "LD_PRELOAD=\"$LD_PRELOAD\"" ;; -h|-?) echo "$0: Please see tsocks(1) or read comment at top of $0" ;; *) if [ -z "$LD_PRELOAD" ] then export LD_PRELOAD="/usr/lib/libtsocks.so" else echo $LD_PRELOAD | grep -q "/usr/lib/libtsocks\.so" || \ export LD_PRELOAD="/usr/lib/libtsocks.so $LD_PRELOAD" fi if [ $# = 0 ] then ${SHELL:-/bin/sh} fi if [ $# -gt 0 ] then exec "$@" fi ;; esac #EOF