HowTo: FTP-tjeneste ved hjelp av MySQL-database

Til tross for noe usikkerhet som kan omgi MySQL, foretrekker jeg personlig å jobbe med denne DB fremfor å bruke noen andre. Jeg har ingenting imot Postgre, jeg har ganske enkelt brukt MySQL i en mannsalder, og til nå har jeg ikke hatt noen grunn til å tenke nytt over bruken.

Denne gangen vil jeg lære deg hvordan du installerer en FTP-server, men ikke bare det, jeg vil lære deg på en ikke så komplisert måte, hvordan du får brukere, passord og andre brukerdata til å bli lagret i en MySQL-database, og ikke i kontoer lokal.

Hvorfor gjør dette slik?

Enkelt, fordi når du tar en sikkerhetskopi, installerer en server på nytt eller andre viktige endringer, vil flytting av tjenesten være så enkelt som å kopiere en konfigurasjonsfil og eksportere MySQL-databasen til FTP.

For å oppnå dette vil vi bruke Ren-FTPd, vel ... la oss komme i gang 🙂

Installere FTP-tjenesten med Pure-FTPd

1. Det første du må gjøre er å installere pakken: ren-ftpd-mysql

I distroer som Debian eller derivater: aptitude installere pure-ftpd-mysql

2. Når vi var installert, startet vi tjenesten, men vi må stoppe den, for å stoppe den på systemer som Debian eller derivater er det nok å:

/etc/init.d/pure-ftpd-mysql stop

Imidlertid forlater jeg deg en linje som vil stoppe tjenesten uansett distro du bruker:

ps ax | grep pure | grep -v grep | awk '{print $1}' | xargs kill

Hvis du vil forstå denne linjen i detalj, kan du lese denne artikkelen

Forbereder forhold på MySQL-serveren

Jeg har allerede forklart for ikke lenge siden hvordan jeg lager en database, en bruker og gir tillatelser til den brukeren i databasen: Brukere og tillatelser i MySQL

La oss gå videre til hva skal vi gjøre her? ...

1. Vi oppretter en database ja, men først får vi tilgang til MySQL:

mysql -u root -p

Her setter de rotpassordet, og de får tilgang til MySQL-terminalen.

2. En gang i MySQL fortsetter vi med å opprette databasen myftpdb:

CREATE DATABASE myftpdb;

Legg merke til semikolonet «;»På slutten av linjen.

3. Nå skal vi opprette brukeren myftpuser og vi vil gi tillatelse til å bruke bruker i databasen som vi nettopp opprettet, denne brukeren vil ha som passord myftppassword:

CREATE USER 'myftpuser'@'localhost' IDENTIFIED BY 'myftppassword';
GRANT ALL PRIVILEGES ON myftpdb.* TO 'myftpuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES ;

4. Klar, vi har opprettet databasen, brukeren og satt tillatelsene. Nå må vi importere standard (eller ren) database for at denne skal være komplett. For å gjøre dette, la oss først avslutte MySQL:

exit;

La oss nå laste ned standarddatabasen som jeg tilbyr deg:

Last ned DB som standard

Eller bruk følgende linje på serveren:

wget http://ftp.desdelinux.net/myftpdb.sql

Klar, vi har det allerede på serveren vår, nå gjenstår det bare å importere dataene dine:

mysql -u root -p myftpdb < myftpdb.sql

Og klar!

De kan også bruke noen webapplikasjoner som admin o PHPMyAdmin for å importere databasen, lar jeg den smake.

5. Og alt dette for å ha betingelsene for MySQL klare.

Kobling av FTP med MySQL

Vel, vi har allerede FTP-tjenesten installert, MySQL-tjenesten installert og med vårt databasesett ... nå trenger vi bare, bli med i FTP-tjenesten med MySQL.

1. Først må vi laste ned konfigurasjonsfilen som vi vil bruke til det ovennevnte. La oss sette følgende linje i serverterminalen:

cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd-mysql.conf

2. Nå starter vi FTP-tjenesten som forteller den å bruke for å autentisere MySQL-brukere, og vi vil også indikere hvilken konfigurasjonsfil vi skal bruke for å koble til MySQL:

pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf

Og voila 😀

Dette er nok til å installere vår egen FTP-server autentisering med en MySQL-database.

Hvis du vil at når serveren starter automatisk, starter den FTP-tjenesten, må du legge inn filen /etc/rc.local linjen som vi bruker for å utføre FTP, det vil si vi legger inn /etc/rc.local dette:

pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf

Forresten, du kan få tilgang til FTP ved hjelp av hvilken som helst nettleser, så vel som FTP-klienter som Filezilla ... og ikke bare det, ved hjelp av fillesere som Nautilus, Dolphin eller PCManFM kan du også laste ned og laste opp filer 😀

Test bruker som er i databasen

Brukernavn: testuser

Passord: testpassord

Hvordan administrere FTP-brukere?

Vel, med tanke på at det er en MySQL-database, som jeg sa ovenfor ... å bruke PHPMyAdmin eller Adminer vil være tilstrekkelig. Bare bruk favorittprogrammet ditt til å administrere databasen, som inneholder en enkelt tabell: Brukere ... og i det er brukerne, her er et skjermbilde:

Hvis du vil opprette en ny bruker, kan du duplisere eller klone den eksisterende linjen og endre dataene som vil være forskjellige mellom begge brukerne, her viser jeg deg et skjermbilde:

Vel ... ingenting mer å legge til 🙂

Jeg håper dette er nyttig for deg og du vet, spørsmål eller forslag, gi meg beskjed.

Hilsen

PD: I denne opplæringen bruker vi passord lagret i databasen i ren tekst. Hvis du vil ha mer sikkerhet, anbefaler jeg deg å prøve md5 😉


28 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   LiGNUxer sa

    VELDIG BRA!!! For et par uker siden installerte jeg dette, men med vsftpd, og jeg er ikke overbevist, så jeg skal prøve dette for å se hvordan det er. Takk skal du ha

    1.    KZKG ^ Gaara sa

      Takk venn.
      vsftpd Jeg husker ikke når sist jeg brukte den ... for noen år siden, ... om jeg noen gang brukte den HAHA. For øyeblikket med PureFTPd er jeg mer enn glad 😀

  2.   ordentlig sa

    Veldig bra bidrag!

    1.    KZKG ^ Gaara sa

      Takk kompa 😀
      Du gjør det du kan lol….

  3.   Computer Guardian sa

    Uuumm, interessant ... send meg IP-en til DB-en som jeg vil ha den samlingen av brukere og passord for hånden 😉

    Ikke vær ond, mann

    1.    KZKG ^ Gaara sa

      Jeg forsto ikke hehehe ... hva IP og DB snakker du om?
      Hvis du mener at disse dataene som jeg la i opplæringen også kan være på en server, ja der har du rett ... de er i en FTP-tjeneste på en virtuell PC på den bærbare datamaskinen min, den har en VELDIG god brannmur (iptables) så ... HAHAHAHAHA selvfølgelig er de ikke onde LOL !!!

  4.   Computer Guardian sa

    Joroña for en joroña…. Det vil være mer komplisert enn det ser ut til å dra nytte av noe sårbarhet og fange opp dataene 😉

  5.   Algave sa

    Veldig interessant!! 🙂

    1.    KZKG ^ Gaara sa

      Takk
      Dette er hva jeg prøver å skille oss fra resten av sidene ... at vi prøver å ikke gi så mye nyheter, men som tekniske artikler 😀

  6.   giskard sa

    Hvor raskt er dette sammenlignet med Samba? (bare lokalt nettverk)

    1.    LiGNUxer sa

      at samba og ftp er to forskjellige ting, ftp er en seriøs protokoll og smb bare for å forenkle delingen mellom win og linux.
      Hvis du leter etter ytelse på nettverket, bruk en FTP-tjeneste, ellers bruk samba bare uten problemer

      1.    KZKG ^ Gaara sa

        Nøyaktig.
        La oss si at FTP er litt mer seriøs enn Samba, i det minste er det etter min mening.

        Jeg har ikke gjort noen referanser i det hele tatt, men kanskje FTP er litt raskere.

        1.    giskard sa

          Takk skal du ha. Jeg bruker Samba slik at jeg fra Wii-konsollen min (med wiimc) kan se filmer og serier som jeg laster ned til datamaskinen min. Men wiimc kan også koble til en ftp-server. Jeg brukte Samba fordi det var det enkleste, men jeg var alltid fascinert hvis det ville være raskere med ftp. Jeg må prøve.

          1.    KZKG ^ Gaara sa

            Vel, du kan også bare montere Apache på PCen din, og slik at Wii vil koble til, må det være raskere enn samba ... og mye enklere å konfigurere enn FTP 😀

          2.    giskard sa

            Wiimc (en Wii Media Player) godtar bare Samba- og FTP-tilkoblinger.

  7.   Maks stål sa

    Utmerket. Du trenger bare noe til denne typen artikler (og nettstedet generelt) for å gjøre alt perfekt; en CSS-mal for å kunne skrive ut artiklene til PDF eller på papir.

  8.   LiGNUxer sa

    Jeg vet ikke om det vil være mitt eget, men det store problemet med dette er at brukere kan gå gjennom alle katalogene selv om jeg gir dem en bestemt katalog som "/ var / www / user_site" hvis de kobler til ftp de har tilgang til hvor som helst fra PCen min ¬¬
    det er ikke veldig trygt haha

  9.   LiGNUxer sa

    HER ER DET!!!
    For å forhindre at brukerne vi lager, kan navigere gjennom hele systemet vårt, må vi legge til parameteren "-A" når vi starter den rene ...

    Så det vi legger til i /etc/rc.local du legger i opplæringen, er dette
    ren-ftpd-mysql -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    og du må erstatte den med denne andre:
    ren-ftpd-mysql -A -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    Er det verdsatt? ... Denne nye linjen har parameteren -A for å begrense katalogen som vi bare tilordner den, og ingenting annet, den kan opprette, men den kan ikke nivåere seg.

    D: denne søte pure-fptd

    1.    KZKG ^ Gaara sa

      Takk for tipset 😀

  10.   Roberto sa

    Hei, det er mulig å implementere kvoter i denne MySQL- og FTP-implementeringen, jeg har for tiden en ftp-server med vsftpd og jeg har ikke noe problem med kvotene, men å være en virtuell bruker (opprettet i mysql) vil kvotene være gyldige? og det andre er hvor filene som er lastet opp av brukerne lagres, det vil si katalogene til hver bruker.

    1.    KZKG ^ Gaara sa

      I teorien kan du implementere kvoter, faktisk har databasen feltene opprettet for den, og konfigurasjonsfilen til FTP-tjenesten har spørsmålene angitt for dette, som jeg faktisk ikke har testet dette this

      Om hvor brukerne ville plassere filene, definerer du det i det femte feltet, se skjermbildet: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg

  11.   Roberto sa

    Tusen takk for kommentaren din, jeg skal teste dette systemet på en testserver og kommentere resultatene, forhåpentligvis kan jeg det fordi det er en fin metode å ha alt i orden, og med en RAID har du et stabilt backupsystem : D.

    1.    KZKG ^ Gaara sa

      Takk til deg for kommentaren 🙂

  12.   Roberto sa

    Jeg har et spørsmål, jeg har allerede klart å installere pure-ftp med mysql og kvoter, problemet er nå hvordan kan jeg suspendere en konto fra selve mysql-tabellen uten å endre brukerpassordet eller opplastede filer.

    1.    KZKG ^ Gaara sa

      Jeg kan tenke på to måter, det enkleste er å endre verdien på status fra 1 til 0, i teorien hvis den er på 0 er kontoen deaktivert, prøv dette og fortell meg 🙂

  13.   birkhoff sa

    Roberto, hvordan klarte du å sette gebyrene ved hjelp av dette anlegget? Vennligst del informasjonen.
    Veldig bra inngang !!

    1.    Roberto Sotelo sa

      Birkhoff, bare på min personlige blogg opprettet jeg et emne om det, jeg lar lenken være for deg å gjennomgå:

      http://aprendelinux.net/instalar-servidor-ftp-pure-ftp-con-cuentas-virtuales-en-mysql/

  14.   klaus sa

    hilsener:

    Jeg prøver å følge alt, men jeg får feil 501 og mest av alt å referere til det faktum at passordet er feil når jeg vet at det er bra