Рейтинг:0

Ubuntu 18.04> VSFTPd, PAM_MySQL :: Как установить домашний каталог пользователей на основе столбца таблицы?

флаг cw

Во-первых, спасибо, что нашли время, чтобы просмотреть мои глупые вопросы :) У меня есть сервер под управлением 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

Я могу дать любые логи, которые вам нужны, так что стреляйте и, возможно, вы забьете!

Спасибо, правда. Я искренне ценю, что вы тратите свое время на мои вопросы.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.