Несмотря на некоторую неопределенность, которая может окружать MySQL, лично я все же предпочитаю работать с этой БД, а не с какой-то другой. Я ничего не имею против Postgre, я просто всю жизнь использовал MySQL, и до сих пор у меня не было причин пересматривать его использование.
На этот раз я научу вас, как установить FTP-сервер, но не только это, я научу вас не таким сложным способом, как сделать так, чтобы пользователи, пароли и другие пользовательские данные хранились в базе данных MySQL, а не в учетных записях. местный.
Почему это так?
Просто, потому что при создании резервной копии, переустановке сервера или любых других значительных изменениях перемещение службы будет таким же простым, как копирование файла конфигурации и экспорт базы данных MySQL на FTP.
Для этого мы будем использовать Pure-FTPd, ну ... приступим 🙂
Установка службы FTP с Pure-FTPd
1. Первое, что нужно сделать, это установить пакет: чистый ftpd-mysql
В таких дистрибутивах, как Debian или производные: aptitude установить чистый 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. Теперь создадим пользователя мойфтпусер и мы дадим разрешения на использование пользователя в базе данных, которую мы только что создали, этот пользователь будет иметь пароль мой фтппароль:
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 я более чем доволен 😀
Очень хороший вклад!
Спасибо compa 😀
Вы делаете то, что можете смеяться….
Уумм, интересно ... передайте мне IP-адрес БД, в которой я хочу иметь под рукой набор пользователей и паролей 😉
Не будь злым, чувак
Я не понял хе-хе ... о каких IP и БД вы говорите?
Если вы имеете в виду, что эти данные, которые я поместил в учебник, также могут быть на сервере, да, вы правы ... они находятся в службе FTP на виртуальном ПК на моем ноутбуке, у него ОЧЕНЬ хороший брандмауэр (iptables) так что… ХАХАХАХА, конечно, не будь злым, LOL !!!
Хоренья, что за хорона…. Это будет сложнее, чем кажется, воспользоваться некоторой уязвимостью и получить эти данные 😉
Очень интересно!! 🙂
Благодарю вас!
Это то, что я стараюсь отличать нас от остальных сайтов ... что мы стараемся размещать не столько новости, сколько технические статьи 😀
Насколько это быстро по сравнению с Samba? (только локальная сеть)
что samba и ftp - это две разные вещи, ftp - серьезный протокол, а smb - просто для облегчения обмена между win и linux.
Если вы ищете производительность в сети, используйте службу FTP, в противном случае используйте самбу без проблем.
Точно.
Скажем, FTP немного серьезнее Samba, по крайней мере, на мой взгляд.
Я вообще не проводил никаких тестов, но, возможно, FTP немного быстрее.
Спасибо. Я использую Samba, чтобы с моей консоли Wii (используя wiimc) я мог смотреть фильмы и сериалы, которые я загружаю на свой компьютер. Но wiimc также может подключаться к ftp-серверу. Я использовал Samba, потому что она была самой простой, но меня всегда заинтриговало, будет ли она быстрее с ftp. Придется попробовать.
Ну, вы также можете просто смонтировать Apache на свой компьютер, и Wii будет подключаться, он должен быть быстрее, чем самба ... и намного проще в настройке, чем FTP 😀
Wiimc (Wii Media Player) принимает только Samba и FTP-соединения.
Превосходно. Вам просто нужно что-то для подобных статей (и сайта в целом), чтобы все было идеально; шаблон CSS для печати статей в формате PDF или на бумаге.
Я не знаю, будет ли он моим собственным, но большая проблема в том, что пользователи могут просматривать все каталоги, даже если я даю им определенный каталог, например "/ var / www / user_site", если они подключаются по ftp, они иметь доступ в любом месте с моего компьютера ¬¬
это не очень безопасно, ха-ха
ВОТ!!!
Чтобы пользователи, которых мы создали, не могли перемещаться по всей нашей системе, мы должны добавить параметр «-A» при запуске чистого ...
Итак, что мы добавляем в файл /etc/rc.local, который вы добавили в учебник, это
чистый ftpd-mysql -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf
и вы должны заменить его другим:
чистый ftpd-mysql -A -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf
Принято ли это? ... Эта новая строка имеет параметр -A для ограничения только каталога, которому мы его назначаем, и ничего другого, что он может создать, но не может повысить уровень.
D: этот милый чистый fptd
Спасибо за совет 😀
Здравствуйте, в этой реализации MySQL и FTP можно реализовать квоты, в настоящее время у меня есть ftp-сервер с vsftpd, и у меня нет проблем с квотами, но, будучи виртуальным пользователем (созданным в mysql), будут ли квоты действительны? а второй - это место, где хранятся файлы, загруженные пользователями, то есть каталоги каждого пользователя.
Теоретически вы можете реализовать квоты, на самом деле в базе данных есть поля, созданные для них, а в файле конфигурации службы FTP есть запросы, установленные для этого, что на самом деле я не тестировал 😉
О том, куда пользователи поместят файлы, вы указываете это в 5-м поле, смотрите снимок экрана: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg
Большое спасибо за ваш комментарий, я собираюсь протестировать эту систему на тестовом сервере и прокомментировать результаты, надеюсь, что смогу, потому что это отличный метод, чтобы все было в порядке, а с RAID у вас есть стабильная резервная копия система: D.
Спасибо за комментарий 🙂
У меня есть вопрос, мне уже удалось установить pure-ftp с mysql и квотами, теперь проблема в том, как я могу приостановить учетную запись из самой таблицы mysql, не изменяя ее пароль пользователя или загруженные файлы.
Я могу придумать два способа, самый простой - изменить значение Статус: от 1 до 0, теоретически, если он на 0, аккаунт деактивирован, попробуйте это и скажите мне 🙂
Роберто, как вам удалось установить сборы с использованием этого объекта? Пожалуйста, поделитесь информацией.
Очень хорошая запись !!
Биркофф, как раз в своем личном блоге я создал тему по этому поводу, оставляю вам ссылку на обзор:
http://aprendelinux.net/instalar-servidor-ftp-pure-ftp-con-cuentas-virtuales-en-mysql/
Приветствия:
Я пытаюсь следить за всем, но получаю ошибку 501 и, прежде всего, ссылаюсь на то, что пароль неверен, когда я знаю, что это нормально