Hosting Virtuale · 4 min read · Dec 29, 2025

Hosting Virtuale Con PureFTPd E MySQL (Incluso Gestione Di Quota E Larghezza Di Banda) Su Mandriva 2007 Spring - Pagina 2

6 Popolare Il Database E Testare

Per popolare il database puoi usare la shell di MySQL:

mysql -u root -p
USE pureftpd;

Ora creiamo l’utente exampleuser con lo stato 1 (che significa che il suo account ftp è attivo), la password secret (che sarà memorizzata crittografata utilizzando la funzione MD5 di MySQL), l’UID e GID 2001 (usa l’userid e groupid dell’utente/gruppo che hai creato alla fine del passo due!), la directory home /home/www.example.com, una larghezza di banda di upload e download di 100 KB/sec. (kilobyte al secondo), e una quota di 50 MB:

INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('exampleuser', '1', MD5('secret'), '2001', '2001', '/home/www.example.com', '100', '100', '', '*', '50', '0');
quit;

Ora apri il tuo programma client FTP sulla tua workstation (qualcosa come WS_FTP o SmartFTP se sei su un sistema Windows o gFTP su un desktop Linux) e prova a connetterti. Come hostname usa server1.example.com (o l’indirizzo IP del sistema), il nome utente è exampleuser, e la password è secret.

Se riesci a connetterti - congratulazioni! Se no, qualcosa è andato storto.

Ora, se esegui

ls -l /home

dovresti vedere che la directory /home/www.example.com (directory home di exampleuser) è stata creata automaticamente, ed è di proprietà di ftpuser e ftpgroup (l’utente/gruppo che abbiamo creato alla fine del passo due):

[root@server1 ~]# ls -l /home  
total 14  
drwxr-xr-x 3 administrator administrator  1024 Jul  4  2007 administrator/  
drwxr-xr-x 2 root          root          12288 Jul  4  2007 lost+found/  
drwxr-xr-x 2 ftpuser      ftpgroup      1024 Jul  4 16:38 www.example.com/  
[root@server1 ~]#

7 Amministrazione Del Database

Per la maggior parte delle persone è più facile avere un’interfaccia grafica per MySQL; quindi puoi anche usare phpMyAdmin (in questo esempio sotto http://server1.example.com/phpmyadmin/) per amministrare il database pureftpd.

Ogni volta che vuoi creare un nuovo utente, devi creare un’entrata nella tabella ftpd quindi spiegherò qui le colonne di questa tabella:

Tabella ftpd:

  • User: Il nome dell’utente virtuale PureFTPd (es. exampleuser).
  • status: 0 o 1. 0 significa che l’account è disabilitato, l’utente non può accedere.
  • Password: La password dell’utente virtuale. Assicurati di usare la funzione MD5 di MySQL per salvare la password crittografata come stringa MD5:
  • UID: L’userid dell’utente ftp che hai creato alla fine del passo due (es. 2001).
  • GID: Il groupid del gruppo ftp che hai creato alla fine del passo due (es. 2001).
  • Dir: La directory home dell’utente virtuale PureFTPd (es. /home/www.example.com). Se non esiste, verrà creata quando il nuovo utente accede per la prima volta tramite FTP. L’utente virtuale sarà rinchiuso in questa directory home, cioè, non può accedere ad altre directory al di fuori della sua directory home.
  • ULBandwidth: Larghezza di banda di upload dell’utente virtuale in KB/sec. (kilobyte al secondo). 0 significa illimitato.
  • DLBandwidth: Larghezza di banda di download dell’utente virtuale in KB/sec. (kilobyte al secondo). 0 significa illimitato.
  • comment: Puoi inserire qui qualsiasi commento (es. per la tua amministrazione interna). Normalmente lasci questo campo vuoto.
  • ipaccess: Inserisci qui gli indirizzi IP che sono autorizzati a connettersi a questo account FTP. * significa che qualsiasi indirizzo IP è autorizzato a connettersi.
  • QuotaSize: Spazio di archiviazione in MB (non KB, come in ULBandwidth e DLBandwidth!) che l’utente virtuale è autorizzato a utilizzare sul server FTP. 0 significa illimitato.
  • QuotaFiles: numero di file che l’utente virtuale è autorizzato a salvare sul server FTP. 0 significa illimitato.

8 FTP Anonimo

Se vuoi creare un account ftp anonimo (un account ftp a cui chiunque può accedere senza una password), hai bisogno di un utente e di un gruppo chiamati ftp. Entrambi sono stati creati automaticamente quando hai installato il pacchetto pure-ftpd, quindi non è necessario crearli manualmente. Tuttavia, la homedir di ftp è /var/ftp per impostazione predefinita, ma mi piacerebbe creare la directory ftp anonima in /home/ftp (le directory ftp degli utenti normali sono anche in /home, es. /home/www.example.com). Ma naturalmente, puoi usare la directory /var/ftp per ftp anonimo, se lo preferisci.

Se vuoi usare /home/ftp, apri /etc/passwd e cambia la homedir dell’utente ftp da /var/ftp a /home/ftp (non farlo se vuoi usare /var/ftp):

vi /etc/passwd

| [...] #ftp:x:77:77:system user for pure-ftpd:/var/ftp:/bin/false ftp:x:77:77:system user for pure-ftpd:/home/ftp:/bin/false [...] |

Poi sposta /var/ftp in /home (non farlo se vuoi usare /var/ftp):

mv /var/ftp /home

Utilizziamo le directory /home/ftp/incoming (che consentiranno agli utenti anonimi di caricare file) e /home/ftp/pub (da dove gli utenti anonimi possono scaricare). Entrambe le directory esistono già. Daremo alla directory /home/ftp/incoming permessi di 311 in modo che gli utenti possano caricare, ma non vedere o scaricare alcun file in quella directory. La directory /home/ftp/pub avrà permessi di 555 che consentono di vedere e scaricare file:

chown -R ftp:nogroup /home/ftp  
cd /home/ftp  
chmod 311 incoming/  
chmod 555 pub/  
cd ../  
chmod 555 ftp/

(Se vuoi usare /var/ftp invece, sostituisci /home/ftp con /var/ftp nei comandi sopra.)

Gli utenti anonimi potranno accedere, e saranno autorizzati a scaricare file da /home/ftp/pub, ma i caricamenti saranno limitati a /home/ftp/incoming (e una volta che un file è caricato in /home/ftp/incoming, non può essere letto né scaricato da lì; l’amministratore del server deve spostarlo in /home/ftp/pub prima di renderlo disponibile agli altri).

Ora dobbiamo configurare PureFTPd per ftp anonimo. Apri /etc/pure-ftpd/pure-ftpd.conf e assicurati di avere le seguenti impostazioni:

vi /etc/pure-ftpd/pure-ftpd.conf

| [...] NoAnonymous no [...] AntiWarez no [...] AnonymousBandwidth 8 [...] AnonymousCantUpload no [...] |

(L’impostazione AnonymousBandwidth è facoltativa - ti consente di limitare le larghezze di banda di upload e download per gli utenti anonimi. 8 significa 8 KB/sec. Usa qualsiasi valore tu voglia, o commenta la riga se non vuoi limitare le larghezze di banda.)

Infine, riavviamo PureFTPd:

/etc/init.d/pure-ftpd restart

9 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.