Во-первых, спасибо, что нашли время, чтобы просмотреть мои глупые вопросы :)
У меня есть сервер под управлением Ubuntu 18.04 LTS, и мне нужно разрешить нескольким пользователям подключаться через ftp к отдельным домашним каталогам для целей Web FTP, и я столкнулся с проблемой, на которую я не могу найти ответы после дня поиск, поэтому я бросаю полотенце и прошу помощи.
у меня есть стол фтп
в моей базе данных и внутри нее 4 столбца; я бы
, имя пользователя
, проходят
, и домен
, домен
быть в центре моего вопроса. Я заставил PAM_MySQL работать правильно, но теперь мне нужно иметь возможность устанавливать имена пользователей отдельно от их домашних каталогов, отсюда и вышеупомянутое домен
столбец.
Видите ли, проблема в том, что везде, где я видел, VSFTPd использует имя пользователя виртуального пользователя для домашнего каталога, что нормально в большинстве случаев, однако мне нужно, чтобы пользователь пользователь1
иметь доступ к домену test.mydomain.com
, но мне тоже нужно пользователь3
иметь доступ test.mydomain.com
также, поэтому я не могу установить имя пользователя в домен и покончить с этим, потому что пользователь1
и пользователь3
обоим нужны отдельные пароли.
я видел на этом Вопрос о сбое сервера 11 лет назад этот человек нашел ответ, который включал встроенный MySQL в файл /etc/vsftpd.conf, однако, когда я попробовал их решение и ввел свои учетные данные базы данных, я обнаружил, что клиент может войти в систему успешно, но FileZilla жалуется на Ошибка GnuTLS -15
что, по моему опыту, означает, что домашний каталог не установлен, и FTP-соединение не может продолжаться; что забавно, потому что, когда я запускаю его в командной строке, я получаю чистый вывод без каких-либо стилей или предупреждений, и он должен выводиться таким образом в файле конфигурации, но по какой-то причине это не так.
Вот фрагмент кода, который я взял из этого вопроса о сбое сервера в моем собственном vsftpd.conf:
``экспорт MYSQL_PWD=MYSQLPASSWORD; mysql -sN -uUSERNAME -h HOSTNAME DATABASE -e "ВЫБЕРИТЕ домен ИЗ DATABASE.accounts WHERE username='user1'"``
А вот вывод в командной строке:
/var/www/поддомены/test.mydomain.com
Я могу установить это вручную в конфигурации, и это работает без проблем, поэтому я думаю, что это просто встроенный MySQL
Итак, есть ли способ обойти это?
И я бы взял журналы, но ни один из них, похоже, не показывает каталог, к которому пытается получить доступ виртуальный пользователь, поэтому, если вы знаете команду, которая может это сделать; Я с удовольствием опубликую его вывод.
/var/журнал/vsftpd.log
не показывает ничего полезного, просто клиент смог войти в систему.
журналctl -xe
показывает следующее:
03 июня 03:17:57 server-4 vsftpd[18039]: pam_unix(vsftpd:session): сеанс открыт для пользователя user1 пользователем (uid=0)
03 июня, 03:17:57 server-4 vsftpd[18039]: pam_systemd(vsftpd:session): не удалось получить данные пользователя.
03 июня, 03:17:57 server-4 vsftpd[18039]: pam_systemd(vsftpd:session): не удалось получить данные пользователя.
03 июня, 03:17:57 сервер-4 pam-script[18039]: не может stat /usr/share/libpam-script/pam_script_ses_close
03 июня 03:17:57 server-4 vsftpd[18039]: pam_unix(vsftpd:session): сеанс закрыт для пользователя user1
Я могу дать любые логи, которые вам нужны, так что стреляйте и, возможно, вы забьете!
Спасибо, правда. Я искренне ценю, что вы тратите свое время на мои вопросы.