În ciuda unor incertitudini care ar putea înconjura MySQL, eu personal încă prefer să lucrez cu această bază de date decât cu oricare alta. Nu am nimic împotriva Postgre, pur și simplu am folosit MySQL de o viață și până acum nu am avut niciun motiv să-i regândesc utilizarea.
De data aceasta vă voi învăța cum să instalați un server FTP, dar nu numai atât, vă voi învăța într-un mod nu atât de complex, cum să faceți ca utilizatorii, parolele și alte date de utilizator să fie salvate într-o bază de date MySQL, și nu în conturi. local.
de ce sa faci asta asa?
Simplu, pentru că atunci când faceți o copie de rezervă, reinstalați un server sau orice altă modificare semnificativă, mutarea serviciului ar fi la fel de simplă ca și copierea unui fișier de configurare și exportul bazei de date MySQL pe FTP.
Pentru a realiza acest lucru vom folosi Pure-FTPd, ei bine… să începem 🙂
Instalarea serviciului FTP cu Pure-FTPd
1. Primul lucru pe care trebuie să-l facem este să instalăm pachetul: pur-ftpd-mysql
În distribuții de genul Debian sau derivate: aptitude install pure-ftpd-mysql
2. Odată instalat, serviciul a pornit, dar trebuie să îl oprim, pentru a-l opri pe sisteme precum Debian sau derivate, doar:
/etc/init.d/pure-ftpd-mysql stop
Cu toate acestea, vă las o linie care va opri serviciul indiferent de distribuția pe care o utilizați:
ps ax | grep pure | grep -v grep | awk '{print $1}' | xargs kill
Pregătirea condițiilor pe serverul MySQL
Am explicat deja nu cu mult timp în urmă cum să creez o bază de date, un utilizator și să-i dai acestuia permisiuni pe baza de date: Utilizatori și permisiuni în MySQL
Să trecem la ce vom face aici? …
1. Vom crea o bază de date da, dar mai întâi accesăm MySQL:
mysql -u root -p
2. Odată intrat în MySQL, mergem să creăm baza de date myftpdb:
CREATE DATABASE myftpdb;
3. Acum vom crea utilizatorul myftpuser și vom acorda permisiuni utilizatorului pe baza de date pe care tocmai am creat-o, acest utilizator va avea o parolă myftppassword:
CREATE USER 'myftpuser'@'localhost' IDENTIFIED BY 'myftppassword';
GRANT ALL PRIVILEGES ON myftpdb.* TO 'myftpuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES ;
4. Gata, am creat baza de date, utilizatorul și am stabilit permisiunile. Acum trebuie să importăm baza de date implicită (sau curată) pentru ca aceasta să fie completă. Pentru a face acest lucru, mai întâi să părăsim MySQL:
exit;
Acum să descarcăm baza de date implicită pe care ți-o ofer:
Sau pe server utilizați următoarea linie:
wget http://ftp.desdelinux.net/myftpdb.sql
Gata, îl avem deja pe serverul nostru, acum trebuie doar să-i importăm datele:
mysql -u root -p myftpdb < myftpdb.sql
Și gata!
5. Și toate acestea sunt pentru a avea pregătite condițiile MySQL.
Conectarea FTP cu MySQL
Ei bine, avem deja instalat serviciul FTP, serviciul MySQL instalat și baza noastră de date instalată... acum tot ce a mai rămas este, alăturați-vă serviciului FTP cu MySQL.
1. Mai întâi trebuie să descărcam fișierul de configurare pe care îl vom folosi pentru cele menționate mai sus. În terminalul serverului să punem următoarea linie:
cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd-mysql.conf
2. Acum începem serviciul FTP spunându-i să folosească MySQL pentru a autentifica utilizatorii și îi vom spune, de asemenea, ce fișier de configurare să folosească pentru a se conecta la MySQL:
pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf
Și voila 😀
Acest lucru este suficient pentru a instala propriul nostru server FTP autentificându-se cu o bază de date MySQL.
Dacă doriți ca serviciul FTP să pornească automat ori de câte ori pornește serverul, trebuie să introduceți fișierul /etc/rc.local linia pe care o folosim pentru a executa FTP-ul, adică o introducem /etc/rc.local acest:
pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf
Apropo, poți accesa FTP folosind orice browser, precum și clienți FTP precum Filezilla... și nu numai, folosind browsere de fișiere precum Nautilus, Dolphin sau PCManFM poți și descărca și încărca fișiere 😀
Testează utilizatorul care se află în baza de date
Nume de utilizator: testuser
Parola: parola de testare
Cum să gestionezi utilizatorii FTP?
Ei bine, ținând cont că este o bază de date MySQL, așa cum am spus mai sus... folosind PHPMyAdmin sau Adminer va fi suficient. Pur și simplu utilizați aplicația preferată pentru a gestiona baza de date, care conține un singur tabel: utilizatorii … și utilizatorii sunt acolo, iată o captură de ecran:
Dacă doriți să creați un utilizator nou, puteți duplica sau clona linia existentă și modificați datele care ar fi diferite între ambii utilizatori, aici vă arăt o captură de ecran:
Ei bine... nimic mai mult de adăugat 🙂
Sper că acest lucru vă este de folos și știți, anunțați-mă dacă aveți întrebări sau sugestii.
În ceea ce priveşte
PD: În acest tutorial folosim parolele salvate în baza de date în text simplu, dacă doriți mai multă securitate vă recomand să încercați md5 😉
FOARTE BUN!!! Acum câteva săptămâni, instalam asta, dar cu vsftpd și nu sunt convins, așa că o să încerc asta să văd cum este. Mulțumesc
Mulțumesc prietene.
vsftpd Nu-mi amintesc când l-am folosit ultima dată... au trecut câțiva ani,... dacă l-am folosit vreodată HAHA. Momentan cu PureFTPd sunt mai mult decât fericit 😀
Foarte bună contribuție!
Mulțumesc prietene 😀
Faci ce poti hehehe….
Uuumm, interesant... da-mi IP-ul DB-ului pentru ca vreau sa am acea colectie de utilizatori si parole la indemana 😉
Nu fi rău, omule
nu am inteles hehehe... despre ce IP si DB vorbesti?
Daca vrei sa spui ca aceste date pe care le-am pus in tutorial ar putea fi si pe un server, da acolo ai dreptate... este intr-un serviciu FTP pe un PC virtual pe laptopul meu, are un firewall FOARTE bun (iptables) deci... HAHAHAHAHA bineinteles sa nu fii rau LOL!!!
Joroña ce joroña... Va fi mai complicat decât pare să exploatezi o vulnerabilitate și să captezi acele date 😉
Foarte interesant!! 🙂
Mulțumesc
Asta incerc sa ne diferentiez de restul site-urilor... ca incercam sa punem nu atat stiri ci articole tehnice 😀
Cât de rapid este asta în comparație cu Samba? (doar rețeaua locală)
că samba și ftp sunt două lucruri diferite, ftp este un protocol serios și smb este doar pentru a facilita partajarea între win și linux.
Dacă cauți performanță în rețea, folosește un serviciu FTP, altfel folosește Samba fără probleme
Corect.
Să zicem că FTP este puțin mai serios decât Samba, cel puțin după părerea mea este.
Nu am făcut benchmark-uri sub nicio formă, dar poate că FTP este puțin mai rapid.
Mulțumesc. Folosesc Samba pentru ca de pe consola mea Wii (folosind wiimc) să pot viziona filme și seriale pe care le descarc pe computer. Dar wiimc se poate conecta și la un server ftp. Am folosit Samba pentru că era cel mai ușor, dar mereu am fost curios dacă va fi mai rapid cu ftp. Va trebui să încerc.
Ei bine, puteți, de asemenea, să configurați Apache pe computer, iar apoi Wii-ul s-ar conecta, acesta ar trebui să fie mai rapid decât Samba... și mult mai simplu de configurat decât FTP 😀
Wiimc (un Wii Media Player) acceptă numai conexiuni Samba și FTP.
Excelent. Aceste tipuri de articole (și site-ul în general) au nevoie doar de ceva pentru a face totul perfect; un șablon CSS pentru a putea tipări articolele în PDF sau pe hârtie.
Nu știu dacă sunt doar eu, dar marea problemă cu asta este că utilizatorii pot trece prin toate directoarele chiar dacă le dau un director anume precum „/var/www/user_site” dacă se conectează prin ftp au acces oriunde de pe pc-ul meu ¬¬
asta nu e foarte sigur haha
IATĂ-L!!!
Pentru a împiedica utilizatorii pe care îi creăm să poată naviga în întregul nostru sistem, trebuie să adăugăm parametrul „-A” atunci când lansăm purul...
Deci ceea ce adăugăm în /etc/rc.local pe care l-ați pus în tutorial este acesta
pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf
și trebuie să-l înlocuiți cu asta:
pure-ftpd-mysql -A -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf
Vedeți?... Această nouă linie are parametrul -A pentru a restricționa directorul doar la cel pe care i l-am alocat și nimic altceva, poate crea dar nu poate ridica un nivel.
D: acesta este destul de pur-fptd
Vă mulțumim pentru sfat 😀
Buna ziua, este posibil sa implementez cote in aceasta implementare MySQL si FTP, momentan am un server ftp cu vsftpd si nu am probleme cu cotele, dar fiind utilizator virtual (creat in mysql) vor fi valabile cotele? iar al doilea este locul unde sunt stocate fișierele încărcate de utilizatori, adică care sunt directoarele fiecărui utilizator.
În teorie poți implementa cote, de fapt baza de date are câmpurile create pentru ea, iar fișierul de configurare a serviciului FTP are interogări pentru asta, dar eu nu am încercat asta de fapt 😉
În ceea ce privește locul în care utilizatorii ar pune fișierele, îl definiți în al 5-lea câmp, vedeți captura de ecran: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg
Vă mulțumesc foarte mult pentru comentariu, voi testa acest sistem pe un server de testare și voi comenta rezultatele, sper să fie posibil pentru că este o metodă grozavă de a menține totul organizat, iar cu un RAID aveți un backup stabil sistem :D.
Vă mulțumesc pentru comentariu 🙂
Am o întrebare, am reușit deja să instalez pure-ftp cu mysql și cote, problema acum este cum pot suspenda un cont din tabelul mysql în sine, fără a-i modifica parola de utilizator sau fișierele încărcate.
Mă gândesc la două moduri, cel mai simplu este să schimbi valoarea Stare de la 1 la 0, teoretic daca este 0 contul este dezactivat, incearca asta si spune-mi :)
Roberto, cum ai reușit să stabilești cotele folosind această instalație? Vă rugăm să împărtășiți informațiile.
Foarte buna intrarea!!
Birkhoff, tocmai pe blogul meu personal am creat un topic despre asta, va las linkul ca sa il puteti revizui:
http://aprendelinux.net/instalar-servidor-ftp-pure-ftp-con-cuentas-virtuales-en-mysql/
Salutări:
Încerc să urmăresc totul, dar primesc eroarea 501 și mai mult decât orice se referă la faptul că parola este incorectă când știu că este corectă