La soluzione che ho adottato non è proprio quella di creare account virtuali, ma più semplicemente quella di impedire l'accesso via terminale a determinate utenze reali del sistema, pur consentendogli di usare l'FTP.
Alla fine l'utente, quindi, avrà la possibilità di fare FTP e verrà posizionato direttamente nella directory che noi vogliamo senza la possibilità di risalire l'albero (
chroot
) ne tanto meno di collegarsi in altri modi.Per ottenere questo risultato, ho utilizzato vsftpd e configurato il sistema come segue.
Premesse: l'utente utilizzato per questa spiegazione si chiama 'pippo' e vogliamo far si che quando si logghi venga a trovarsi direttamente nella directory '/Data/pippo'
Per prima cosa installiamo, se non l'abbiamo già fatto, il server FTP. In Ubuntu con il seguente comando
sudo apt-get install vsftpd
poi creiamo l'utente 'pippo' con
sudo adduser --home /Data/pippo --shell /bin/false --no-create-home pippo2
inserite quindi una password come vi viene richiesto, completate le altre notizie a confermate.
Ora bisogna controllare se la shell
/bin/false
è valida nel vostro sistema, ovvero se è inserita nel file /etc/shells
. Questa shell fittizia, serve per fare in modo che l'utente materialmente non si possa collegare via terminale, ma allo stesso tempo deve essere una shell valida elencata nell'apposito file, altrimenti non riusciremo mai ad entrare neanche via FTP. Quindi, editiamo il file ed assicuriamoci che la shell sia elencata, altrimenti aggiungiamola in coda:sudo nano /etc/shells
Il gioco è fatto!
0 commenti:
Posta un commento