123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #!/bin/sh
- # TorPostflight gets invoked after any install or upgrade.
- ADDSYSUSER=$RECEIPT_PATH/addsysuser
- if [ ! -x "$ADDSYSUSER" ]; then
- echo "Could not find addsysuser script."
- exit 1
- fi
- TORUSER=_tor
- TORGROUP=daemon
- TARGET=$2/Library/Tor
- TORDIR=$TARGET/var/lib/tor
- LOGFILE=/var/log/tor.log
- TORBUTTON_VERSION="1.1.8-alpha"
- # Check defaults for TARGET
- if [ "$TARGET" == "//Library/Tor" ]; then
- TARGET=/Library/Tor
- fi
- # Create user $TORUSER in group daemon. If it's already there, great.
- $ADDSYSUSER $TORUSER "Tor System user" $TORDIR
- # Create the tor directory, if it doesn't exist.
- if [ ! -d $TORDIR ]; then
- mkdir -p $TORDIR
- fi
- # Check its permissions.
- chown $TORUSER $TORDIR
- chgrp daemon $TORDIR
- chmod 700 $TORDIR
- if [ ! -f $LOGFILE ]; then
- touch $LOGFILE
- chown $TORUSER $LOGFILE
- chgrp daemon $LOGFILE
- chmod 660 $LOGFILE
- fi
- # Create the configuration file only if there wasn't one already.
- if [ ! -f $TARGET/torrc ]; then
- cp $TARGET/torrc.sample $TARGET/torrc
- fi
- # Ensure symbolic links
- cd /usr/bin
- if [ -e /usr/bin/tor -a ! -L /usr/bin/tor ]; then
- mv tor tor_old
- fi
- if [ -e /usr/bin/tor-resolve -a ! -L /usr/bin/tor-resolve ]; then
- mv tor-resolve tor-resolve_old
- fi
- ln -sf $TARGET/tor .
- ln -sf $TARGET/tor-resolve .
- cd /usr/share/man/man1
- MAN1=$TARGET/man/man1
- ln -sf $MAN1/*.1 .
- if [ -d /Library/StartupItems/Privoxy ]; then
- find /Library/StartupItems/Privoxy -print0 | xargs -0 chown root:wheel
- fi
- # Copy Documentation
- if [ -d $PACKAGE_PATH/Contents/Resources/documents ];then
- cp -r $PACKAGE_PATH/Contents/Resources/documents $TARGET/documents
- fi
- # Copy Uninstaller
- if [ -f $PACKAGE_PATH/Contents/Resources/Tor_Uninstaller.applescript ]; then
- cp $PACKAGE_PATH/Contents/Resources/Tor_Uninstaller.applescript $TARGET/Tor_Uninstaller.applescript
- chmod 550 $TARGET/Tor_Uninstaller.applescript
- fi
- if [ -f $PACKAGE_PATH/Contents/Resources/uninstall_tor_bundle.sh ]; then
- cp $PACKAGE_PATH/Contents/Resources/uninstall_tor_bundle.sh $TARGET/uninstall_tor_bundle.sh
- chmod 550 $TARGET/uninstall_tor_bundle.sh
- fi
- if [ -f $PACKAGE_PATH/Contents/Resources/package_list.txt ]; then
- cp $PACKAGE_PATH/Contents/Resources/package_list.txt $TARGET/package_list.txt
- fi
- if [ -d /Library/StartupItems/Tor ]; then
- rm -f /Library/StartupItems/Tor/Tor.loc
- echo "$TARGET" > /Library/StartupItems/Tor/Tor.loc
- fi
- if [ -f /Applications/Firefox.app/Contents/MacOS/firefox ]; then
- if [ -f $TARGET/torbutton-$TORBUTTON_VERSION.xpi ]; then
- /Applications/Firefox.app/Contents/MacOS/firefox -install-global-extension $TARGET/torbutton-$TORBUTTON_VERSION.xpi
- # The following is a kludge to get around the fact that the installer
- # runs as root. This means the Torbutton extension will install with
- # root permissions; thereby making uninstalling Torbutton from inside
- # Firefox impossible. The user will be caught in an endless loop of
- # uninstall -> automatic re-installation of Torbutton. The OSX
- # installer doesn't tell you the owner of Firefox, therefore we have to
- # parse it.
- USR=`ls -alrt /Applications/Firefox.app/Contents/MacOS/extensions/ | tail -1 | awk '{print $3}'`
- GRP=`ls -alrt /Applications/Firefox.app/Contents/MacOS/extensions/ | tail -1 | awk '{print $4}'`
- chown -R $USR:$GRP /Applications/Firefox.app/Contents/MacOS/extensions/
- fi
- fi
|