Незважаючи на певну невизначеність, яка може оточувати MySQL, особисто я все-таки віддаю перевагу роботі з цією БД перед використанням іншої. Я нічого не маю проти 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
2. Опинившись у MySQL, ми продовжуємо створювати базу даних myftpdb:
CREATE DATABASE myftpdb;
3. Тепер ми створимо користувача myftpuser і ми дамо дозволи на використання користувача в базі даних, яку ми щойно створили, цей користувач матиме як пароль myftppassword:
CREATE USER 'myftpuser'@'localhost' IDENTIFIED BY 'myftppassword';
GRANT ALL PRIVILEGES ON myftpdb.* TO 'myftpuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES ;
4. Готово, ми створили базу даних, користувача та встановили дозволи. Тепер ми повинні імпортувати базу даних за замовчуванням (або чисту), щоб це було повно. Для цього давайте спочатку вийдемо з MySQL:
exit;
Тепер давайте завантажимо базу даних за замовчуванням, яку я вам пропоную:
Або на сервері використовуйте такий рядок:
wget http://ftp.desdelinux.net/myftpdb.sql
Готово, у нас це вже є на нашому сервері, тепер залишається лише імпортувати ваші дані:
mysql -u root -p myftpdb < myftpdb.sql
І готовий!
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 😉
ДУЖЕ ДОБРЕ!!! Пару тижнів тому я встановлював це, але за допомогою vsftpd, і я не впевнений, тому я спробую це, щоб побачити, як це. Дякую
Дякую, друже.
vsftpd Я не пам’ятаю, коли я востаннє використовував його… це буде через кілька років… якщо я коли-небудь використовував його HAHA. На даний момент з PureFTPd я більш ніж задоволений 😀
Дуже хороший внесок!
Дякую компа 😀
Ти робиш те, що можеш хахати ...
Ууумм, цікаво ... передайте мені ІР БД, який я хочу мати під набором користувачів та паролів 😉
Не будь злим, чоловіче
Я не зрозумів хе-хе ... про який IP та БД ви говорите?
Якщо ви маєте на увазі, що ці дані, які я помістив у навчальному посібнику, також можуть бути на сервері, так, ви маєте рацію ... вони знаходяться у службі FTP на віртуальному ПК на моєму ноутбуці, у нього ДУЖЕ хороший брандмауер (iptables) так що… ХАХАХАХАХА, звісно, вони не злі ЛОЛ !!!
Joroña який joroña…. це буде складніше, ніж здається, скористатися деякою вразливістю та захопити ці дані 😉
Дуже цікаво!! 🙂
Дякую
Це те, що я намагаюся відрізняти нас від решти сайтів ... що ми намагаємось розміщувати не стільки новини, скільки технічні статті 😀
Наскільки це швидко в порівнянні з самбою? (лише локальна мережа)
що самба та ftp - це дві різні речі, ftp - це серйозний протокол і smb, щоб полегшити обмін між win та linux.
Якщо ви шукаєте продуктивність в мережі, використовуйте послугу FTP, інакше використовуйте самбу без проблем
Точно.
Скажімо, FTP трохи серйозніший за Samba, принаймні на мій погляд.
Я не робив жодного тесту взагалі, але, можливо, FTP трохи швидший.
Дякую. Я використовую Samba, щоб із консолі Wii (за допомогою wiimc) я міг переглядати фільми та серіали, які завантажую на свій комп’ютер. Але wiimc може також підключитися до ftp-сервера. Я використовував Samba, оскільки це було найпростіше, але мені завжди було цікаво, чи буде це швидше з ftp. Мені доведеться спробувати.
Ну, ви також можете просто змонтувати Apache на своєму ПК, і щоб Wii підключався, він повинен бути швидшим, ніж самба ... і набагато простішим у налаштуванні, ніж FTP 😀
Wiimc (медіапрогравач Wii) приймає лише з'єднання Samba та FTP.
Відмінно. Вам просто потрібно щось до таких типів статей (і сайту загалом), щоб зробити все ідеальним; шаблон CSS для друку статей у форматі PDF або на папері.
Я не знаю, чи буде це моє власне, але велика проблема в цьому полягає в тому, що користувачі можуть переглядати всі каталоги, навіть якщо я даю їм певний каталог, наприклад "/ var / www / user_site", якщо вони підключаються за допомогою ftp, вони мати доступ до будь-якого місця з мого ПК ¬¬
це не дуже безпечно ха-ха
ОСЬ!!!
Щоб користувачі, яких ми створюємо, не могли переходити по всій нашій системі, ми повинні додати параметр "-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 для обмеження каталогу, до якого ми його призначаємо, і нічого іншого, він може створювати, але не може підвищувати рівень.
Д: цей милий чистий fptd
Дякую за підказку 😀
Привіт, можливо реалізувати квоти в цій реалізації MySQL та FTP, на даний момент у мене є ftp-сервер з vsftpd, і я не маю проблем з квотами, але будучи віртуальним користувачем (створеним у mysql), чи будуть квоти дійсними? а друге - там, де зберігаються файли, завантажені користувачами, тобто каталоги кожного користувача.
Теоретично ви можете реалізувати квоти, насправді у базі даних є поля, створені для неї, а у файлі конфігурації служби FTP встановлені запити для цього, що насправді я не перевіряв
Про те, куди користувачі розміщуватимуть файли, ви визначаєте це у 5-му полі, див. Скріншот: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg
Щиро дякую за ваш коментар, я збираюся протестувати цю систему на тестовому сервері та прокоментувати результати, сподіваюся, що зможу, тому що це чудовий спосіб мати все в порядку, а з RAID ви маєте стабільну резервну копію система: Д.
Дякую за коментар 🙂
У мене є запитання, я вже встиг встановити pure-ftp з mysql та квотами, зараз проблема полягає в тому, як я можу призупинити обліковий запис із самої таблиці mysql, не змінюючи його пароль користувача або завантажені файли.
Я можу думати про два шляхи, найпростіший - це змінити значення Статус від 1 до 0, теоретично, якщо він дорівнює 0, рахунок деактивовано, спробуйте це і скажіть мені 🙂
Роберто, як вам вдалося встановити збори за допомогою цього засобу? Будь ласка, поділіться інформацією.
Дуже хороший вхід !!
Біркгофф, щойно у своєму особистому блозі я створив тему про це, я залишаю посилання для вас:
http://aprendelinux.net/instalar-servidor-ftp-pure-ftp-con-cuentas-virtuales-en-mysql/
Спасибі
Я намагаюся слідувати усьому, але отримую помилку 501, а найбільше посилаюся на те, що пароль неправильний, коли я знаю, що це нормально