#!/bin/sh # # This file is part of ezmlm-web. # # it creates user-specific suid binaries for calling ezmlm-web.cgi # # parameters: [USERNAME] DESTINATION_FILE # e.g.: john ~john/public_html/cgi-bin/ezmlm-web # only root may choose a USERNAME # # Copyright (C) 2006-2007, Lars Kruse, All Rights Reserved. # # ezmlm-web is distributed under a BSD-style license. Please refer to # the copyright file included with the release for details. # 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'."