Nonostante alcune incertezze che potrebbero circondare MySQL, personalmente preferisco ancora lavorare con questo DB piuttosto che usarne altri. Non ho nulla contro Postgre, ho semplicemente usato MySQL per tutta la vita e fino ad ora non ho avuto motivo di ripensare al suo utilizzo.
Questa volta ti insegnerò come installare un server FTP, ma non solo, ti insegnerò in modo non così complesso, come fare in modo che utenti, password e altri dati degli utenti vengano memorizzati in un database MySQL, e non negli account Locale.
Perché fai così?
Semplice, perché quando si effettua un backup, si reinstalla un server o qualsiasi altra modifica significativa, spostare il servizio sarebbe semplice come copiare un file di configurazione ed esportare il database MySQL su FTP.
Per raggiungere questo obiettivo useremo FTPd puro, beh ... iniziamo 🙂
Installazione del servizio FTP con Pure-FTPd
1. La prima cosa da fare è installare il pacchetto: pure-ftpd-mysql
In distribuzioni come Debian o derivati: aptitude installa pure-ftpd-mysql
2. Una volta installato abbiamo avviato il servizio ma dobbiamo fermarlo, per fermarlo su sistemi tipo Debian o derivati basta con:
/etc/init.d/pure-ftpd-mysql stop
Tuttavia, ti lascio una riga che interromperà il servizio indipendentemente dalla distribuzione che usi:
ps ax | grep pure | grep -v grep | awk '{print $1}' | xargs kill
Preparazione delle condizioni sul server MySQL
Ho già spiegato non molto tempo fa come creare un database, un utente e dare i permessi a quell'utente nel database: Utenti e autorizzazioni in MySQL
Passiamo a cosa faremo qui? ...
1. Creeremo un database sì, ma prima accediamo a MySQL:
mysql -u root -p
2. Una volta all'interno di MySQL si passa alla creazione del database myftpdb:
CREATE DATABASE myftpdb;
3. Ora creeremo l'utente myftpuser e daremo i permessi per usare l'utente sul database che abbiamo appena creato, questo utente avrà come password password miaftp:
CREATE USER 'myftpuser'@'localhost' IDENTIFIED BY 'myftppassword';
GRANT ALL PRIVILEGES ON myftpdb.* TO 'myftpuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES ;
4. Pronto, abbiamo creato il database, l'utente e impostato i permessi. Ora dobbiamo importare il database predefinito (o pulito) affinché questo sia completo. Per fare ciò, prima usciamo da MySQL:
exit;
Adesso scarichiamo il database di default che ti offro:
Oppure sul server utilizzare la seguente riga:
wget http://ftp.desdelinux.net/myftpdb.sql
Pronto, lo abbiamo già sul nostro server, ora non resta che importare i tuoi dati:
mysql -u root -p myftpdb < myftpdb.sql
E pronto!
5. E questo è tutto per avere le condizioni del nostro MySQL pronte.
Collegamento FTP con MySQL
Bene, abbiamo già il servizio FTP installato, il servizio MySQL installato e con il nostro set di database ... ora abbiamo solo bisogno, aderire al servizio FTP con MySQL.
1. Per prima cosa dobbiamo scaricare il file di configurazione che useremo per il suddetto. Nel terminale del server mettiamo la seguente riga:
cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd-mysql.conf
2. Ora avviamo il servizio FTP dicendogli di usare per autenticare gli utenti MySQL, e indicheremo anche quale file di configurazione usare per connettersi a MySQL:
pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf
E voilà 😀
Questo è sufficiente per installare il nostro server FTP autenticandoti con un database MySQL.
Se vuoi che ogni volta che il server si avvia automaticamente avvii il servizio FTP, devi inserire il file /etc/rc.local la linea che usiamo per eseguire l'FTP, cioè la inseriamo /etc/rc.local Questo:
pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf
A proposito, puoi accedere all'FTP utilizzando qualsiasi browser, oltre a client FTP come Filezilla ... e non solo, utilizzando browser di file come Nautilus, Dolphin o PCManFM puoi anche scaricare e caricare file 😀
Utente di prova che si trova nel database
Nome utente: testuser
Password: password di prova
Come gestire gli utenti FTP?
Bene, tenendo conto che si tratta di un database MySQL, come ho detto sopra ... sarà sufficiente usare PHPMyAdmin o Adminer. Usa la tua applicazione preferita per gestire il database, che contiene un'unica tabella: utenti ... e in esso ci sono gli utenti, ecco uno screenshot:
Se vuoi creare un nuovo utente, puoi duplicare o clonare la linea esistente e modificare i dati che sarebbero diversi tra i due utenti, qui ti mostro uno screenshot:
Bene ... niente altro da aggiungere 🙂
Spero che questo ti sia utile e sai, eventuali domande o suggerimenti fammelo sapere.
saluti
PD: In questo tutorial utilizziamo le password salvate nel database in chiaro, se vuoi una maggiore sicurezza ti consiglio di provare md5 😉
MOLTO BUONA!!! Un paio di settimane fa stavo installando questo ma con vsftpd e non sono convinto, quindi proverò questo per vedere come è. Grazie
Grazie amico.
vsftpd Non ricordo quando è stata l'ultima volta che l'ho usato ... qualche anno fa, ... se mai l'ho usato HAHA. Al momento con PureFTPd sono più che felice 😀
Ottimo contributo!
Grazie compa 😀
Fai quello che puoi lol….
Uuumm, interessante ... passami l'IP del DB che voglio avere a portata di mano quella raccolta di utenti e password 😉
Non essere cattivo, amico
Non ho capito hehehe ... di che IP e DB stai parlando?
Se intendi che questi dati che ho inserito nel tutorial potrebbero essere anche su un server, sì, hai ragione ... sono in un servizio FTP su un PC virtuale sul mio laptop, ha un firewall MOLTO buono (iptables) quindi ... HAHAHAHAHA ovviamente non essere malvagio LOL !!!
Joroña che joroña…. Sarà più complicato di quanto sembri trarre vantaggio da alcune vulnerabilità e acquisire quei dati 😉
Molto interessante!! 🙂
Grazie
Questo è quello che cerco di differenziarci dal resto dei siti ... che proviamo a mettere non tanto notizie ma come articoli tecnici 😀
Quanto è veloce rispetto a Samba? (solo rete locale)
che samba e ftp sono 2 cose diverse, ftp è un protocollo serio e smb solo per facilitare la condivisione tra win e linux.
Se stai cercando prestazioni in rete, usa un servizio FTP, altrimenti usa samba senza problemi
Esatto.
Diciamo che FTP è un po 'più serio di Samba, almeno secondo me lo è.
Non ho fatto alcun benchmark, ma forse FTP è un po 'più veloce.
Grazie. Uso Samba in modo che dalla mia console Wii (usando wiimc) posso guardare film e serie che scarico sul mio computer. Ma wiimc può anche connettersi a un server ftp. Ho usato Samba perché era il più semplice, ma ero sempre incuriosito se sarebbe stato più veloce con ftp. Dovrò provare
Bene, potresti anche semplicemente montare Apache sul tuo PC, e così la Wii si connetterà, deve essere più veloce di samba ... e molto più semplice da configurare rispetto a FTP 😀
Il wiimc (un Wii Media Player) accetta solo connessioni Samba e FTP.
Eccellente. Hai solo bisogno di qualcosa per questi tipi di articoli (e il sito in generale) per rendere tutto perfetto; un modello CSS per poter stampare gli articoli in PDF o su carta.
Non so se sarà il mio, ma il grosso problema è che gli utenti possono passare attraverso tutte le directory anche se do loro una directory specifica come "/ var / www / user_site" se si connettono tramite ftp avere accesso ovunque dal mio pc ¬¬
non è molto sicuro haha
ECCO QUI!!!
Per evitare che gli utenti che creiamo possano navigare attraverso il nostro intero sistema, dobbiamo aggiungere il parametro "-A" all'avvio del pure ...
Quindi quello che aggiungiamo a /etc/rc.local che hai inserito nel tutorial è questo
pure-ftpd-mysql -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf
e devi sostituirlo con quest'altro:
pure-ftpd-mysql -A -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf
È apprezzata? ... Questa nuova riga ha il parametro -A per limitare la directory solo a cui la assegniamo e nient'altro, può creare ma non può salire di livello.
D: questo simpatico pure-fptd
Grazie per il suggerimento 😀
Ciao, è possibile implementare quote in questa implementazione di MySQL e FTP, attualmente ho un server ftp con vsftpd e non ho problemi con le quote, ma essendo un utente virtuale (creato in mysql) le quote saranno valide? e il secondo è dove vengono archiviati i file caricati dagli utenti, ovvero le directory di ciascun utente.
In teoria puoi implementare le quote, infatti il database ha i campi creati per esso, e il file di configurazione del servizio FTP ha le query impostate per questo, che infatti non ho testato questo 😉
Riguardo a dove gli utenti metterebbero i file, lo definisci nel 5 ° campo, vedi lo screenshot: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg
Grazie mille per il tuo commento, testerò questo sistema su un server di prova e commenterò i risultati, spero di poterlo fare perché è un ottimo metodo per avere tutto in ordine e con un RAID hai un backup stabile sistema: D.
Grazie anche a te per il commento 🙂
Ho una domanda, sono già riuscito a installare pure-ftp con mysql e quote, il problema ora è come posso sospendere un account dalla tabella mysql stessa, senza modificare la password utente oi file caricati.
Posso pensare a due modi, il più semplice è cambiare il valore di Stato dei servizi da 1 a 0, in teoria se è a 0 l'account è disattivato, prova questo e dimmi 🙂
Roberto, come sei riuscito a fissare le tariffe utilizzando questa struttura? Si prega di condividere le informazioni.
Ingresso molto buono !!
Birkhoff, proprio nel mio blog personale ho creato un argomento a riguardo, vi lascio il link per la revisione:
http://aprendelinux.net/instalar-servidor-ftp-pure-ftp-con-cuentas-virtuales-en-mysql/
Saluti:
Sto cercando di seguire tutto ma ricevo l'errore 501 e soprattutto mi riferisco al fatto che la password non è corretta quando so che va bene