Directory public_html con uno script bash
Apache, Open Source, Shell, Sistema, Tips & tricks Nessun commento »
Mi è capitato spesso di dover mettere mano a server UNIX/Linux con una gestione dei VirtualHost di Apache compromessa da anni di utilizzo incontrollato del server da parte di amministratori di sistema non proprio ordinati. Il risultato di solito è un grande numero di utenti con home directory strutturate in maniera differente l’una dall’altra.
In particolare, in un caso recente mi sono ritrovato un centinaio di utenti dei quali una certa parte aveva la DocumentRoot nella propria home directory, altri invece ce l’avevano sotto /var/www/users/, cosa che io raccomando in quanto evita di avere problemi con SUEXEC nelle versioni di Apache precompilate.
Per sistemare una situazione così caotica ho deciso di mettere tutto correttamente sotto /var/www/users/ e mi si è presentata la necessità di creare automaticamente le directory mancanti e i relativi link simbolici alle varie home directory. L’ho fatto con un semplicissimo script in bash, che pubblico qui nel caso possa essere utile anche a qualcun altro. Ci ho messo anche un po’ di output per rendere il codice chiaro anche a chi è alle prima armi con la bash.
Attenzione! Alla riga 18 viene fatta la copia di un fast-cgi presente nella directory /var/www/users/ivan/. Ovvio che dovete sostituire ivan con il nome di un utente presente sul vostro server.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #!/bin/bash echo "Inizializzazione script..." for i in $( ls /home/ ); do echo " Sto processando '$i'" if [ -L /home/$i/public_html ]; then echo " Il link simbolico /home/$i/public_html esiste gia' ... salto!" else echo " Il link simbolico /home/$i/public_html non esiste: provo a crearlo ... " if [ -d /var/www/users/$i ]; then echo "La directory /var/www/users/$i esiste, non mi resta che linkarla ... " /bin/ln -s /var/www/users/$i /home/$i/public_html else echo " La directory /var/www/users/$i NON esiste, ora la creo ... " /bin/mkdir /var/www/users/$i echo " Copio il FAST-CGI ... " /bin/cp /var/www/users/ivan/fast-cgi /var/www/users/$i/ echo " Sistemo i permessi per la directory creata ... " /bin/chown -R $i:$i /var/www/users/$i /bin/chmod 700 /var/www/users/$i echo " Creo il link simbolico ... " /bin/ln -s /var/www/users/$i /home/$i/public_html fi fi done |















Riproduco in questo post la tabella realizzata da Pádraig Brady e pubblicata sul suo sito Internet ufficiale (

Proftpd traccia qualsiasi operazione nel file di log denominato xferlog. In effetti molti altri demoni FTP scrivono i log in un file con lo stesso nome e adottando lo stesso formato, quindi questa tip può interessare anche chi utilizza, ad esempio, Wu-Ftpd o altri FTP standard BSD.
Mi è capitato in questi giorni di dover ripulire le mailbox di alcuni clienti svuotandole di tutti i messaggi più vecchi di un certo numero di giorni. Volendo automatizzare questa operazione piuttosto noiosa, ho spulciato fra le mie vecchie cose ed ho ritrovato uno script che assolve egregiamente il compito. Si tratta del programma
Per la serie RTFM, riporto di seguito le istruzioni in italiano riportate sulla documentazione ufficiale di Debian per il recupero della password di root. Lo faccio ad uso e consumo di una persona molto pigra che me lo ha chiesto.
Questa è stata una settimana molto, molto dura… ma non posso certo permettere che si concluda senza avere messo online almeno una piccola, miserabile, insignificante tip! Quindi, per fare le cose al volo, vi dico come effettuo la sincronizzazione di un sito Internet che ho elaborato in locale con la copia che è pubblicata nella directory di un certo spazio FTP.
