Как: FTP услуга, използваща база данни MySQL

Въпреки известна несигурност, която може да заобиколи MySQL, лично аз все още предпочитам да работя с тази DB пред да използвам друга. Нямам нищо против Postgre, просто използвах MySQL цял живот и досега нямах причина да преосмислям използването му.

Този път ще ви науча как да инсталирате FTP сървър, но не само това, ще ви науча по не толкова сложен начин, как да направя потребителите, паролите и другите потребителски данни да се съхраняват в база данни на MySQL, а не в акаунти местни.

Защо това е така?

Просто, защото при създаване на резервно копие, преинсталиране на сървър или друга значителна промяна преместването на услугата би било толкова просто, колкото копирането на конфигурационен файл и експортирането на базата данни MySQL към FTP.

За да постигнем това ще използваме Чисто-FTPd, добре ... нека започнем 🙂

Инсталиране на FTP услугата с Pure-FTPd

1. Първото нещо, което трябва да направите, е да инсталирате пакета: чист-ftpd-mysql

В дистрибуции като Debian или производни: aptitude инсталирайте pure-ftpd-mysql

2. След като инсталирахме, стартирахме услугата, но трябва да я спрем, за да я спрем на системи като Debian или деривати, достатъчно е с:

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

Оставям ви обаче линия, която ще спре услугата, независимо от дистрибуцията, която използвате:

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

Ако искате да разберете подробно този ред, прочетете тази статия

Подготовка на условия на MySQL сървъра

Вече обясних неотдавна как да създам база данни, потребител и да дам разрешения на този потребител в базата данни: Потребители и разрешения в MySQL

Нека да преминем към това какво ще правим тук? ...

1. Ще създадем база данни да, но първо влизаме в MySQL:

mysql -u root -p

Тук те поставят паролата на root и ще имат достъп до терминала MySQL.

2. След като влезем в MySQL, продължаваме да създаваме базата данни myftpdb:

CREATE DATABASE myftpdb;

Забележете точка и запетая «;»В края на реда.

3. Сега ще създадем потребителя myftpuser и ние ще дадем разрешения за използване на потребител в базата данни, която току-що създадохме, този потребител ще има като парола myftpпарола:

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

4. Готови, създадохме базата данни, потребителя и зададохме разрешенията. Сега трябва да импортираме базата по подразбиране (или чиста), за да бъде това пълно. За да направите това, нека първо излезем от MySQL:

exit;

Сега нека изтеглим базата данни по подразбиране, която ви предлагам:

Изтеглете DB по подразбиране

Или на сървъра използвайте следния ред:

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

Готови, вече го имаме на нашия сървър, сега остава само да импортираме вашите данни:

mysql -u root -p myftpdb < myftpdb.sql

И готово!

Те също могат да използват някои уеб приложения като Admin o PHPMyAdmin за да импортирам базата данни, я оставям на вкус.

5. И това е всичко, за да са готови условията на нашия MySQL.

Свързване на FTP с MySQL

Е, вече имаме инсталирана FTP услуга, инсталирана услугата MySQL и с нашата база данни ... сега просто се нуждаем, присъединете се към FTP услуга с MySQL.

1. Първо трябва да изтеглим конфигурационния файл, който ще използваме за гореспоменатите. В сървърния терминал поставяме следния ред:

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

2. Сега стартираме FTP услугата, която казва да се използва за удостоверяване на потребителите на MySQL, и също така ще посочим кой конфигурационен файл да използва, за да се свърже с MySQL:

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

И вуала 😀

Това е достатъчно, за да инсталираме нашия собствен FTP сървър за удостоверяване с MySQL база данни.

Ако искате всеки път, когато сървърът стартира автоматично, той стартира FTP услугата, трябва да поставите файла /etc/rc.local линията, която използваме за изпълнение на FTP, тоест поставяме /etc/rc.local това:

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

Между другото, можете да получите достъп до FTP с помощта на всеки браузър, както и FTP клиенти като Filezilla ... и не само, като използвате файлови браузъри като Nautilus, Dolphin или PCManFM, можете също да изтегляте и качвате файлове 😀

Тествайте потребител, който е в базата данни

Потребител: testuser

парола: тестова парола

Как да управлявам FTP потребители?

Е, като се има предвид, че това е база данни MySQL, както казах по-горе ... използването на PHPMyAdmin или Adminer ще бъде достатъчно. Просто използвайте любимото си приложение за управление на базата данни, която съдържа една таблица: Потребители ... И в него са потребителите, ето екранна снимка:

Ако искате да създадете нов потребител, можете да дублирате или клонирате съществуващия ред и да промените данните, които биха били различни между двамата потребители, тук ви показвам екранна снимка:

Ами ... нищо повече за добавяне 🙂

Надявам се, че това е полезно за вас и знаете ли, всички въпроси или предложения да ме уведомите.

поздрави

PD: В този урок използваме пароли, записани в базата данни в обикновен текст, ако искате повече сигурност, препоръчвам ви да опитате md5 😉


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   LiGNUxer каза той

    МНОГО ДОБРЕ!!! Преди няколко седмици инсталирах това, но с vsftpd и не съм убеден, така че ще пробвам това, за да видя как е. Благодаря ти

    1.    KZKG ^ Гаара каза той

      Благодаря приятел.
      vsftpd Не помня кога за последно го използвах ... преди няколко години, ... дали някога съм го използвал HAHA. В момента с PureFTPd съм повече от доволен 😀

  2.   надлежен каза той

    Много добър принос!

    1.    KZKG ^ Гаара каза той

      Благодаря компа 😀
      Правиш каквото можеш хаха ...

  3.   Компютърен пазител каза той

    Uuumm, интересно ... предайте ми IP адреса на DB, който искам да има под ръка тази колекция от потребители и пароли 😉

    Не бъди зъл, човече

    1.    KZKG ^ Гаара каза той

      Не разбрах хехехе ... за какъв IP и DB говориш?
      Ако имате предвид, че тези данни, които съм поставил в урока, могат да бъдат и на сървър, да, вие сте прав ... те са във FTP услуга на виртуален компютър на моя лаптоп, той има МНОГО добра защитна стена (iptables) така че ... HAHAHAHAHA разбира се, не бъди зъл LOL !!!

  4.   Компютърен пазител каза той

    Joroña какъв joroña .... ще бъде по-сложно, отколкото изглежда да се възползва от известна уязвимост и да улови тези данни 😉

  5.   Алгабе каза той

    Много интересно!! 🙂

    1.    KZKG ^ Гаара каза той

      Благодаря ви
      Това се опитвам да ни разграничи от останалите сайтове ... че се опитваме да пускаме не толкова новини, колкото технически статии 😀

  6.   Гискард каза той

    Колко бързо е това в сравнение със Samba? (само локална мрежа)

    1.    LiGNUxer каза той

      че samba и ftp са 2 различни неща, ftp е сериозен протокол и smb, само за да улесни споделянето между win и linux.
      Ако търсите производителност в мрежата, използвайте FTP услуга, в противен случай използвайте samba просто без проблеми

      1.    KZKG ^ Гаара каза той

        Точно.
        Да кажем, че FTP е малко по-сериозен от Samba, поне според мен е така.

        Изобщо не съм правил никакви критерии, но може би FTP е малко по-бърз.

        1.    Гискард каза той

          Благодаря ти. Използвам Samba, така че от конзолата на Wii (с помощта на wiimc) да мога да гледам филми и сериали, които изтеглям на компютъра си. Но wiimc може да се свърже и с ftp сървър. Използвах Samba, защото беше най-лесният, но винаги ме интересуваше дали ще бъде по-бързо с ftp. Ще трябва да опитам.

          1.    KZKG ^ Гаара каза той

            Е, можете също така просто да монтирате Apache на вашия компютър и за да се свърже Wii, той трябва да е по-бърз от samba ... и много по-лесен за конфигуриране от FTP 😀

          2.    Гискард каза той

            Wiimc (Wii Media Player) приема само Samba и FTP връзки.

  7.   Макс стомана каза той

    Отлично. Трябва ви само нещо от този тип статии (и сайта като цяло), за да направите всичко перфектно; шаблон на CSS, за да можете да отпечатвате статиите в PDF или на хартия.

  8.   LiGNUxer каза той

    Не знам дали ще е мой, но големият проблем с това е, че потребителите могат да преминат през всички директории, дори ако им дам конкретна директория като "/ var / www / user_site", ако се свържат чрез ftp те имам достъп до всяко място от моя компютъ𠬬
    това не е много безопасно хаха

  9.   LiGNUxer каза той

    ЕТО ГО!!!
    За да попречим на създадените от нас потребители да могат да навигират през цялата ни система, трябва да добавим параметъра "-A", когато стартираме чистата ...

    Така че това, което добавяме към /etc/rc.local, което поставяте в урока, е това
    pure-ftpd-mysql -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    и трябва да го замените с това друго:
    pure-ftpd-mysql -A -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    Оценява ли се? ... Този нов ред носи параметъра -A, за да ограничи само директорията, към която го присвояваме и нищо друго, той може да създава, но не може да се изравнява.

    D: този сладък pure-fptd

    1.    KZKG ^ Гаара каза той

      Благодаря за съвета 😀

  10.   Roberto каза той

    Здравейте, възможно е да приложите квоти в тази реализация на MySQL и FTP, в момента имам ftp сървър с vsftpd и нямам проблем с квотите, но като виртуален потребител (създаден в mysql) квотите ще бъдат ли валидни? и второто е мястото, където се съхраняват файловете, качени от потребители, тоест кои са директориите на всеки потребител.

    1.    KZKG ^ Гаара каза той

      На теория можете да внедрите квоти, всъщност базата данни има полетата, създадени за нея, а конфигурационният файл на FTP услугата има зададени заявки за това, което всъщност не съм тествал това 😉

      За това къде потребителите ще поставят файловете, вие го определяте в 5-то поле, вижте екранната снимка: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg

  11.   Roberto каза той

    Благодаря ви много за вашия коментар, ще тествам тази система на тестов сървър и ще коментирам резултатите, надявам се, че мога, защото това е чудесен метод да имате всичко в ред, а с RAID имате стабилна система за архивиране : Д.

    1.    KZKG ^ Гаара каза той

      Благодаря ви за коментара 🙂

  12.   Roberto каза той

    Имам въпрос, вече успях да инсталирам pure-ftp с mysql и квоти, въпросът сега е как мога да преустановя акаунт от самата таблица на mysql, без да променя потребителската си парола или качени файлове.

    1.    KZKG ^ Гаара каза той

      Мога да измисля два начина, най-простият е да променя стойността на Статус от 1 до 0, на теория ако е на 0 акаунтът е деактивиран, опитайте това и ми кажете 🙂

  13.   Биркхоф каза той

    Роберто, как успяхте да определите таксите, използвайки това съоръжение? Моля, споделете информацията.
    Много добър вход !!

    1.    Роберто Сотело каза той

      Birkhoff, точно в личния си блог създадох тема за това, оставям връзката за преглед:

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

  14.   Клаус каза той

    поздрави:

    Опитвам се да следвам всичко, но получавам грешка 501 и най-вече да се позова на факта, че паролата е неправилна, когато знам, че е добре