Вопрос или проблема
Я попытался запустить FTP-сервер на своем MacBook с High Sierra (версия 10.14.16)
Но у меня не получилось. Мои шаги были следующими:
Настроить FTP-сервер локально, запустив pure-ftpd:
brew install pure-ftpd
brew services start pure-ftpd
sudo /usr/local/sbin/pure-ftpd
Настроить FTP-клиент для подключения к локальному FTP-серверу:
brew install tnftp
Настроить pure-ftpd по этой ссылке: https://wiki.archlinux.org/index.php/Pure-FTPd (обновить файл /usr/local/etc/pure-ftpd.conf
) содержит:
Раскомментируйте следующие две строки:
NoAnonymous yes
PureDB /usr/local/etc/pureftpd.pdb
Установите параметр MinUID в /usr/local/etc/pure-ftpd.conf
на 98 (я получил это, когда запустил: sudo pure-pw show username
) [UID : 98 (_ftp)]
Укажите оболочку пользователя FTP-системы в /etc/shells: echo “/bin/false” >> /etc/shells (я добавил ‘/bin/false’ в конец этого файла вручную)
Создайте пользователей (виртуального или реального пользователя на моем Mac — все равно не работает):
mkdir ~/ftpuser/test3
sudo pure-pw useradd test3 -u ftp -D /Users/macbook/ftpuser/test3
sudo pure-pw mkdb
Но когда я попытался подключиться к FTP-серверу, результат был таким:
Macbooks-MacBook-Pro:marketing macbook$ ftp localhost
Trying ::1...
Connected to localhost.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 23:06. Server port: 21.
220 You will be disconnected after 15 minutes of inactivity.
Name (localhost:macbook): test3
331 User test3 OK. Password required
Password:
530 Login authentication failed
ftp: Login failed
ftp> quit
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.
brew install pure-ftpd
brew install inetutils
sudo brew services start pure-ftpd
su root
Обновление:
vi /usr/local/etc/pure-ftpd.conf
Измените:
NoAnonymous no
На:
NoAnonymous yes
И раскомментируйте:
PureDB /usr/local/etc/pureftpd.pdb
Сохраните и выйдите.
Я создал /etc/pam.d/pure-ftpd
со следующими строками, используя привилегии суперпользователя:
# pure-ftpd: auth account password session
auth required pam_opendirectory.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
Сохраните и выйдите, и выйдите из учетной записи root.
mkdir /Users/you-username/ftpshare
chmod 777 /Users/you-username/ftpshare
Создайте пользователя и пароль для доступа к ftp-директории:
sudo pure-pw useradd userftp -u ftp -D /Users/you-username/ftpshare
Создайте базу данных:
sudo pure-pw mkdb
sudo brew services restart pure-ftpd
Проверить:
ftp 127.0.0.1
Ответ или решение
Запуск FTP-сервера на macOS может быть сложной задачей, особенно если вы сталкиваетесь с трудностями в процессе настройки. Рассмотрим шаги, которые вы предприняли, чтобы запустить FTP-сервер с использованием Pure-FTPd на MacBook, работающем под управлением macOS High Sierra (Версия 10.14.16), и выявим возможные проблемы, а также представим решения для их устранения.
Теория: Основы и принципы работы FTP-сервера
FTP (File Transfer Protocol) представляет собой один из старейших протоколов, используемых для передачи файлов через сеть. Основным компонентом является FTP-сервер, который хранит файлы и обеспечивает их доступ через сетевые подключения. В случае macOS, особенно после версии Lion, встроенная поддержка FTP-сервера была удалена, и пользователю необходимо установить и настроить сторонний сервер, такой как Pure-FTPd.
Пример: Шаги по установке и настройке Pure-FTPd
Шаги, которые вы предприняли, включают установку Pure-FTPd через Homebrew и настройку конфигурационных файлов для обеспечения доступа пользователей. Рассмотрим ваш подход более детально:
-
Установка Pure-FTPd:
brew install pure-ftpd
Homebrew — это популярный менеджер пакетов для macOS, который облегчает установку и управление программным обеспечением. Через него вы успешно установили Pure-FTPd.
-
Запуск службы:
brew services start pure-ftpd sudo /usr/local/sbin/pure-ftpd
Обратите внимание, что служба может быть запущена вручную или управляться через
brew services
. Это позволяет сервису автоматически запускаться при старте системы. -
Настройка конфигурационного файла:
Вы изменили файл/usr/local/etc/pure-ftpd.conf
, включая параметры:NoAnonymous yes PureDB /usr/local/etc/pureftpd.pdb
Отказ от анонимного доступа и использование базы данных пользователей (
PureDB
) — это рекомендованные меры для обеспечения безопасности. -
Создание пользователя и базы данных:
sudo pure-pw useradd test3 -u ftp -D /Users/macbook/ftpuser/test3 sudo pure-pw mkdb
Вы создали виртуального пользователя и назначили домашний каталог, после чего обновили базу данных пользователей.
Применение: Устранение проблем и рекомендации
Судя по приведенному вами логу, проблема заключалась в неудачной аутентификации пользователя "test3". Давайте разберем возможные причины и шаги для их устранения:
-
Проверка правильности ввода данных:
Убедитесь, что вы вводите правильные учетные данные (имя пользователя и пароль), которые были заданы при создании пользователя черезpure-pw useradd
. -
Проверка базы данных пользователей:
Убедитесь, что база данных пользователей была сгенерирована корректно. Командаsudo pure-pw mkdb
должна запускаться после каждого изменения в списке пользователей. -
Правильное назначение прав:
Проверьте права доступа к каталогу, назначенному пользователю. В командном примере они были выставлены как 777, что позволяет любой учетной записи выполнять операции чтения, записи и исполнения. Это подходит для тестирования, но для реальной эксплуатации рекомендуются более строгие настройки. -
Проверка состояния службы:
Перезапустите службу после изменений конфигурации:sudo brew services restart pure-ftpd
Это гарантирует, что все последние изменения вступят в силу.
-
Логи и отладка:
В случае, если проблемы сохраняются, просмотрите логи Pure-FTPd, которые могут предоставить дополнительную информацию о неудачных попытках входа. -
Обновление конфигурации PAM:
Вы упомянули создание файла/etc/pam.d/pure-ftpd
. Убедитесь в его правильной настройке, так как проблемы с PAM могут также вызывать ошибки при аутентификации.
Эти рекомендации помогут вам устранить проблемы с запуском FTP-сервера на вашем устройстве. Если проблема все еще не решена, можно дополнительно обратиться к документации Pure-FTPd или специализированным форумам для подробного обсуждения ваших настроек. Учитывая все описанные шаги, настройка FTP-сервера на macOS, хотя и требует определенных технических знаний, может стать вполне осуществимой задачей при тщательном выполнении всех инструкций.