HowTo: FTP-tjänst med MySQL-databas

Trots viss osäkerhet som kan omge MySQL, föredrar jag personligen fortfarande att arbeta med denna DB framför att använda någon annan. Jag har inget emot Postgre, jag har helt enkelt använt MySQL under en livstid och hittills har jag inte haft någon anledning att tänka om dess användning.

Den här gången lär jag dig hur du installerar en FTP-server, men inte bara det, jag kommer att lära dig på ett inte så komplext sätt, hur man gör att användare, lösenord och annan användardata lagras i en MySQL-databas och inte på konton lokal.

Varför gör detta så här?

Enkelt, för när du gör en säkerhetskopia, installerar om en server eller någon annan betydande förändring, skulle det vara lika enkelt att flytta tjänsten som att kopiera en konfigurationsfil och exportera MySQL-databasen till FTP.

För att uppnå detta kommer vi att använda Ren-FTPd, ja ... låt oss komma igång 🙂

Installera FTP-tjänsten med Pure-FTPd

1. Det första du ska göra är att installera paketet: ren-ftpd-mysql

I distros som Debian eller derivat: aptitude installera pure-ftpd-mysql

2. Efter installationen startade vi tjänsten men vi måste stoppa den, för att stoppa den på system som Debian eller derivat räcker det att:

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

Jag lämnar dock en rad som stoppar tjänsten oavsett distro du använder:

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

Om du vill förstå denna rad i detalj, läs Denna artikel

Förbereder villkor på MySQL-servern

Jag förklarade redan för inte länge sedan hur man skapar en databas, en användare och ger användaren behörigheter i databasen: Användare och behörigheter i MySQL

Låt oss gå vidare till vad ska vi göra här? ...

1. Vi kommer att skapa en databas ja, men först kommer vi åt MySQL:

mysql -u root -p

Här sätter de rotlösenordet och de kommer åt MySQL-terminalen.

2. Väl inne i MySQL fortsätter vi med att skapa databasen myftpdb:

CREATE DATABASE myftpdb;

Lägg märke till semikolonet «;»I slutet av raden.

3. Nu skapar vi användaren myftpuser och vi ger behörighet att använda användare i den databas som vi just skapade, den här användaren kommer att ha som lösenord myftplösenord:

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

4. Redo, vi har skapat databasen, användaren och ställt in behörigheterna. Nu måste vi importera standarddatabasen (eller rena) för att denna ska vara komplett. För att göra detta, låt oss först avsluta MySQL:

exit;

Låt oss nu ladda ner standarddatabasen som jag erbjuder dig:

Ladda ner DB som standard

Eller använd följande rad på servern:

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

Klar, vi har det redan på vår server, nu återstår det bara att importera dina data:

mysql -u root -p myftpdb < myftpdb.sql

Och redo!

De kan också använda någon webbapplikation som Administration o pHPMyAdmin för att importera databasen lämnar jag det efter smak.

5. Och allt detta för att ha villkoren för vår MySQL redo.

Länka FTP med MySQL

Tja, vi har redan installerat FTP-tjänsten, MySQL-tjänsten installerad och med vår databasuppsättning ... nu behöver vi bara, gå med i FTP-tjänst med MySQL.

1. Först måste vi ladda ner konfigurationsfilen som vi kommer att använda för ovannämnda. Låt oss lägga till följande rad i serverterminalen:

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

2. Nu startar vi FTP-tjänsten som säger att den ska användas för att autentisera MySQL-användare, och vi kommer också att ange vilken konfigurationsfil som ska användas för att ansluta till MySQL:

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

Och voila 😀

Detta räcker för att installera vår egen FTP-server autentisering med en MySQL-databas.

Om du vill att när servern startar automatiskt startar den FTP-tjänsten måste du lägga in filen /etc/rc.local linjen som vi använder för att utföra FTP, det vill säga vi lägger in /etc/rc.local detta:

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

Förresten, du kan komma åt FTP med vilken webbläsare som helst, liksom FTP-klienter som Filezilla ... och inte bara det, med filwebbläsare som Nautilus, Dolphin eller PCManFM kan du också ladda ner och ladda upp filer 😀

Testanvändare som finns i databasen

Användarnamn: testuser

Lösenord: testlösenord

Hur hanterar jag FTP-användare?

Tja, med tanke på att det är en MySQL-databas, som jag sa ovan ... att använda PHPMyAdmin eller Adminer räcker. Använd bara ditt favoritprogram för att hantera databasen, som bara innehåller en tabell: användare ... Och i det finns användarna, här är en skärmdump:

Om du vill skapa en ny användare kan du duplicera eller klona den befintliga raden och ändra data som skulle vara annorlunda mellan båda användarna, här visar jag dig en skärmdump:

Tja ... inget mer att lägga till 🙂

Jag hoppas att det här är användbart för dig och du vet, alla frågor eller förslag låt mig veta.

hälsningar

PD: I den här handledningen använder vi lösenord som sparats i databasen i klartext, om du vill ha mer säkerhet rekommenderar jag att du försöker md5 😉


28 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   LiGNUxer sade

    MYCKET BRA!!! För några veckor sedan installerade jag det här men med vsftpd och jag är inte övertygad så jag ska prova detta för att se hur det är. Tack

    1.    KZKG ^ Gaara sade

      Tack kompis.
      vsftpd Jag kommer inte ihåg när sista gången jag använde den ... för några år sedan, ... om jag någonsin använde den HAHA. Just nu med PureFTPd är jag mer än glad 😀

  2.   rätt sade

    Mycket bra bidrag!

    1.    KZKG ^ Gaara sade

      Tack kompa 😀
      Du gör vad du kan lol ....

  3.   Datorförmyndare sade

    Uuumm, intressant ... skicka mig IP: n för DB som jag vill ha den samlingen av användare och lösenord till hands hand

    Var inte ond, man

    1.    KZKG ^ Gaara sade

      Jag förstod inte hehehe ... vilken IP och DB pratar du om?
      Om du menar att dessa data som jag lägger i handledningen också kan finnas på en server, ja där har du rätt ... de är i en FTP-tjänst på en virtuell dator på min bärbara dator, den har en MYCKET bra brandvägg (iptables) så ... HAHAHAHAHA naturligtvis inte vara ond LOL !!!

  4.   Datorförmyndare sade

    Joroña vilken joroña .... Det kommer att bli mer komplicerat än att det verkar dra nytta av viss sårbarhet och fånga den informationen 😉

  5.   Algave sade

    Mycket intressant!! 🙂

    1.    KZKG ^ Gaara sade

      Tack
      Det här är vad jag försöker skilja oss från resten av sajterna ... att vi inte försöker lägga ut så mycket nyheter utan som tekniska artiklar 😀

  6.   giskard sade

    Hur snabbt är detta jämfört med Samba? (endast lokalt nätverk)

    1.    LiGNUxer sade

      att samba och ftp är två olika saker, ftp är ett seriöst protokoll och smb bara för att underlätta delningen mellan win och linux.
      Om du letar efter prestanda i nätverket, använd en FTP-tjänst, annars använd samba bara utan problem

      1.    KZKG ^ Gaara sade

        Exakt.
        Låt oss säga att FTP är lite allvarligare än Samba, åtminstone enligt min mening är det.

        Jag har inte gjort några riktmärken alls, men kanske är FTP lite snabbare.

        1.    giskard sade

          Tack. Jag använder Samba så att jag från min Wii-konsol (med wiimc) kan titta på filmer och serier som jag laddar ner till min dator. Men wiimc kan också ansluta till en ftp-server. Jag använde Samba eftersom det var det enklaste, men jag var alltid intresserad om det skulle gå snabbare med ftp. Jag måste försöka.

          1.    KZKG ^ Gaara sade

            Tja, du kan också helt enkelt montera Apache på din dator, och så skulle Wii ansluta, det måste vara snabbare än samba ... och mycket enklare att konfigurera än FTP 😀

          2.    giskard sade

            Wiimc (en Wii Media Player) accepterar endast Samba- och FTP-anslutningar.

  7.   Max stål sade

    Excellent. Denna typ av artikel (och webbplatsen i allmänhet) behöver bara något för att göra allt perfekt; en CSS-mall för att kunna skriva ut artiklarna till PDF eller på papper.

  8.   LiGNUxer sade

    Jag vet inte om det kommer att bli mitt eget, men det stora problemet med detta är att användare kan gå igenom alla kataloger även om jag ger dem en specifik katalog som "/ var / www / user_site" om de ansluter via ftp de har tillgång till var som helst från min dator ¬¬
    det är inte särskilt säkert haha

  9.   LiGNUxer sade

    HÄR ÄR DET!!!
    För att förhindra att användarna vi skapar kan navigera genom hela vårt system måste vi lägga till parametern "-A" när vi startar den rena ...

    Så vad vi lägger till i /etc/rc.local som du lägger i handledningen är detta
    ren-ftpd-mysql -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    och du måste ersätta den med den här andra:
    ren-ftpd-mysql -A -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    Uppskattas det? ... Den här nya raden har parametern -A för att begränsa katalogen bara till vilken vi tilldelar den och inget annat, den kan skapa men den kan inte höjas.

    D: denna söta rena-fptd

    1.    KZKG ^ Gaara sade

      Tack för tipset 😀

  10.   Roberto sade

    Hej, det är möjligt att implementera kvoter i denna MySQL- och FTP-implementering, jag har för närvarande en ftp-server med vsftpd och jag har inga problem med kvoterna, men att vara en virtuell användare (skapad i mysql) kommer kvoterna att vara giltiga? och det andra är där de filer som laddas upp av användare lagras, det vill säga vilka är katalogerna för varje användare.

    1.    KZKG ^ Gaara sade

      I teorin kan du implementera kvoter, i själva verket har databasen fälten skapade för den, och konfigurationsfilen för FTP-tjänsten har frågorna inställda för detta, vilket jag faktiskt inte har testat detta 😉

      Om var användarna skulle placera filerna definierar du det i det femte fältet, se skärmdumpen: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg

  11.   Roberto sade

    Tack så mycket för din kommentar, jag ska testa detta system på en testserver och kommentera resultaten, förhoppningsvis kan jag det eftersom det är en bra metod att ha allt i ordning, och med en RAID har du ett stabilt reservsystem : D.

    1.    KZKG ^ Gaara sade

      Tack till dig för kommentaren 🙂

  12.   Roberto sade

    Jag har en fråga, jag har redan lyckats installera pure-ftp med mysql och kvoter, problemet är nu hur kan jag stänga av ett konto från själva mysql-tabellen utan att ändra dess användarlösenord eller uppladdade filer.

    1.    KZKG ^ Gaara sade

      Jag kan tänka på två sätt, det enklaste är att ändra värdet på status från 1 till 0, om det är vid 0 är kontot inaktiverat, prova detta och berätta för mig 🙂

  13.   birkhoff sade

    Roberto, hur lyckades du fastställa avgifterna med den här anläggningen? Vänligen dela informationen.
    Mycket bra inträde !!

    1.    Roberto Sotelo sade

      Birkhoff, precis i min personliga blogg skapade jag ett ämne om det, jag lämnar länken för dig att granska:

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

  14.   Klaus sade

    Hälsningar:

    Jag försöker följa allt men jag får fel 501 och mest av allt att hänvisa till det faktum att lösenordet är felaktigt när jag vet att det är bra