HowTo: serviciu FTP folosind baza de date MySQL

Î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

Dacă doriți să înțelegeți acest rând în detaliu, citiți Acest articol

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

Aici ei introduc parola de root și vor accesa terminalul MySQL.

2. Odată intrat în MySQL, mergem să creăm baza de date myftpdb:

CREATE DATABASE myftpdb;

Observați punct și virgula «;»La sfârșitul liniei.

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:

Descărcați DB în mod implicit

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!

De asemenea, puteți utiliza o aplicație web precum admin o PHPMyAdmin Pentru a importa baza de date, vă las pe voi.

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 😉


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   LiGNUxer el a spus

    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

    1.    KZKG ^ Gaara el a spus

      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 😀

  2.   adecvat el a spus

    Foarte bună contribuție!

    1.    KZKG ^ Gaara el a spus

      Mulțumesc prietene 😀
      Faci ce poti hehehe….

  3.   Computer Guardian el a spus

    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

    1.    KZKG ^ Gaara el a spus

      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!!!

  4.   Computer Guardian el a spus

    Joroña ce joroña... Va fi mai complicat decât pare să exploatezi o vulnerabilitate și să captezi acele date 😉

  5.   Algave el a spus

    Foarte interesant!! 🙂

    1.    KZKG ^ Gaara el a spus

      Mulțumesc
      Asta incerc sa ne diferentiez de restul site-urilor... ca incercam sa punem nu atat stiri ci articole tehnice 😀

  6.   giskard el a spus

    Cât de rapid este asta în comparație cu Samba? (doar rețeaua locală)

    1.    LiGNUxer el a spus

      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

      1.    KZKG ^ Gaara el a spus

        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.

        1.    giskard el a spus

          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.

          1.    KZKG ^ Gaara el a spus

            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 😀

          2.    giskard el a spus

            Wiimc (un Wii Media Player) acceptă numai conexiuni Samba și FTP.

  7.   Oțel maxim el a spus

    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.

  8.   LiGNUxer el a spus

    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

  9.   LiGNUxer el a spus

    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

    1.    KZKG ^ Gaara el a spus

      Vă mulțumim pentru sfat 😀

  10.   Roberto el a spus

    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.

    1.    KZKG ^ Gaara el a spus

      Î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

  11.   Roberto el a spus

    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.

    1.    KZKG ^ Gaara el a spus

      Vă mulțumesc pentru comentariu 🙂

  12.   Roberto el a spus

    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.

    1.    KZKG ^ Gaara el a spus

      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 :)

  13.   birkhoff el a spus

    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!!

    1.    RobertoSotelo el a spus

      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/

  14.   klaus el a spus

    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ă