<VirtualHost *:80> ServerName upload.example.org DocumentRoot /var/www/server/download/docs #DirectoryIndex index.html index.php AddDefaultCharset utf-8 DavLockDB /tmp/davLock_upload AddDefaultCharset utf-8 <Location /> DAV On Options FollowSymLinks AuthType Basic AuthName "Example Download Webdav Account (for Upload)" AuthUserFile ../www01/conf/apache/.passwd_upload Require valid-user # download von php-scripten ForceType text/plain </Location> </VirtualHost> <VirtualHost *:80> ServerName download.example.org DocumentRoot /var/www/server/download/docs DirectoryIndex index.php AddDefaultCharset utf-8 Include ../www01/conf/apache/download_locations.conf </VirtualHost>
#!/bin/bash # /usr/local/bin/create-download-user rechner=`hostname` baseusername=kunde pwfile=/var/www/server/www01/conf/apache/.passwd_download basedir=/var/www/server/download/docs location=/var/www/server/www01/conf/apache/download_locations.conf apacheuser=wwwrun apachegroup=wwwrun baseurl="http://download.example.org/" empfaenger=sysadmin@example.org mailsubject="Passwoerter fuer download.example.org" function pwcreate { pw=`pwgen -B -1 10` } function usercreate { user=`printf "$baseusername%04d" $n` } function locationcreate { cat >> $location << _EOF_ <Location /$user/> AuthType Basic AuthName "$user" AuthUserFile ../www01/conf/apache/.passwd_download Require user $user </Location> _EOF_ mkdir -p $basedir/$user ln -s $basedir/index.php $basedir/$user/index.php cat > $basedir/$user/test.txt << _EOF2_ Welcome on this download-server as $user This life is a test. It is only a test. Had this been an actual life you would have received further instructions as to what to do and where to go _EOF2_ chown -R $apacheuser:$apachegroup $basedir/$user } pwsammler="" # gibt es die passwort-datei? if [[ ! -f $pwfile ]]; then # nein? -> dann anlegen und ersten user anlegen pwcreate n=1 usercreate locationcreate pwsammler="${pwsammler}${user};${pw};${baseurl}${user}\n" htpasswd -c -b $pwfile $user $pw fi # suche nummer von letztem user lastusernumber=`grep $baseusername $pwfile | tail -1 | sed "s/$baseusername//;s/:.*//"` # weil das bei fuehrenden nullen als oktal interpretiert wird, erstmal wieder # auf basis 10 bringen lastusernumber=$((10#$lastusernumber)) for (( n=$((lastusernumber+1)); n<=$((lastusernumber+19)); n++ )); do pwcreate usercreate locationcreate #echo $user $pw pwsammler="${pwsammler}${user};${pw};${baseurl}${user}\n" htpasswd -b $pwfile $user $pw # benutzer-verzeichnis anlegen + location-directive ergaenzen done echo "-------------------" printf "Angelegte User mit Passwort und URL \n" printf "$pwsammler" printf "\nDie Liste wird auch als CSV an $empfaenger geschickt \n\n" body=" Hier die neuen User fuer download.example.org Beste Gruesse vom Script $0 auf $rechner " (printf "%s\n%s\n" "$body" ; printf $pwsammler | uuencode download_example_org.csv ) |mailx -s "$mailsubject" $empfaenger # ende
gilt für alle Tipps, Tricks & Spickzettel:
dies sind einfache, teils banale Notizen für meinen persönlichen Gebrauch,
die hier eher zufällig auch öffentlich lesbar sind
(vielleicht hilft es ja jemandem weiter). Verwendung auf eigene Gefahr
Fehler-Hinweise, Dankesschreiben , etc. bitte an: web.21@unixwitch.de
weitere Tools / Spickzettel