#!/bin/sh ### Protect a directory with HTTP Basic Auth. THIS_CMD="${0}" if [ "${1}X" = "X" -o "${2}X" = "X" ]; then echo "" echo "usage: ${THIS_CMD} AUTHN_NAME AUTHN_SECRET [TARGET_DIRECTORY]" echo "" echo " AUTHN_NAME User or group name for accessing the content." echo " AUTHN_SECRET Password for that user or group." echo " TARGET_DIRECTORY Directory to protect (defaults to current dir)" echo "" exit 1 fi AUTHN_NAME="${1}" AUTHN_SECRET="${2}" TARGET_DIR="${3}X" XTARGET_DIR="${4}X" if [ ${TARGET_DIR} = "X" ]; then TARGET_DIR="." else TARGET_DIR="${3}" fi TARGET_DIR_FULL_PATH=`(cd ${TARGET_DIR} && pwd)` CRYPTTEXT=`perl -e 'srand(time ^ ($$ << 15)) if $[ < 5.004; my $plaintext = shift; my $salt = join "", (".", "/", 0..9, "A".."Z", "a".."z")[rand 64, rand 64]; print crypt($plaintext, $salt);' ${AUTHN_SECRET}` echo "${AUTHN_NAME}:${CRYPTTEXT}" > ${TARGET_DIR}/.htpasswd cat > ${TARGET_DIR}/.htaccess <