ezmlm-web/suid-wrapper/ezmlm-web-make-suid

32 lines
868 B
Plaintext
Raw Normal View History

#!/bin/sh
#
# create user-specific suid binaries to call ezmlm-web.cgi
#
# parameters: [USERNAME] DESTINATION_FILE
# e.g.: john ~john/public_html/cgi-bin/ezmlm-web
# only root may choose a USERNAME
#
set -eu
EZMLM_WEB_SUID_WRAPPER=/usr/local/bin/ezmlm-web.wrapper
[ $(id -u) -ne 0 ] && [ $# -ne 1 ] && echo "Syntax (for non-root): $(basename $0) DESTINATION_FILE" >&2 && exit 1
[ $(id -u) -eq 0 ] && [ $# -gt 2 -o $# -lt 1 ] && echo "Syntax (for root): $(basename $0) [USERNAME] DESTINATION_FILE" >&2 && exit 1
if [ $# -eq 1 ]
then EZ_USER=$(id -un)
EZ_FILE=$1
else EZ_USER=$1
EZ_FILE=$2
fi
cp "$EZMLM_WEB_SUID_WRAPPER" "$EZ_FILE"
if [ $(id -u) -eq 0 ]
then chown "$EZ_USER". "$EZ_FILE" || { echo "the user '$EZ_USER' does not exist" >&2; rm "$EZ_FILE"; exit 1; }
fi
chmod u+s "$EZ_FILE"
echo "Successfully created '$EZ_FILE' for user '$EZ_USER'."