wiki:setup_suexec_directory

Version 7 (modified by Jamie McClelland, 13 years ago) (diff)

--

How do I setup an suExec directory for a member?

Only MFPL admins have permission to take this step. If you would like suExec enabled for your site, please follow our suExec FAQ.

Run the following script, passing the name of the user as the first argument to the script.

#!/bin/bash
# Script to create cgi-bin directory for /var/www/members-cgi-in

base=/var/www/members-cgi-bin

if [ -z "$1" ]; then
  echo "Please pass the user to create the cgi directory for."
  exit
fi

user="$1"

sitepath=$(getent passwd "$user" | cut -d: -f6 | cut -d/ -f1-6)
site=$(echo "$sitepath" | cut -d/ -f6)
group=$(echo "$sitepath" | cut -d/ -f4)

if [ -z "$sitepath" ]; then
  echo "The user '$user' does not seem to exist"
  exit
fi

# Build directories

if [ ! -d "$base" ]; then mkdir "$base"; fi

if [ ! -d "$base/$site" ]; then
  echo "Creating '$base/$site'"
  mv "$sitepath/cgi-bin" "$base/$site"
  chown "$user:$group" "$base/$site"
  ln -s "$base/$site" "$sitepath/cgi-bin"
fi

# Ensure suexec is enabled (reload apache if necessary)
if [ ! -h /etc/apache2/mods-enabled/suexec.load ]; then
  echo "suexec not enabled, enabling and reloading apache"
  /usr/sbin/a2enmod suexec
  /etc/init.d/apache2 reload
fi