Я сделал установку vsftpd на своем домашнем сервере. Я получил некоторую ошибку аутентификации, таким образом, я перерыл этот форум и получил решение. Это решение работало на меня
Как в решении. настройка по умолчанию
pam_service_name=vsftpd
не работает и FTP-сервер не позволяет мне входить в систему.
И После того, как я изменил его на
pam_service_name=ftp
Это работает, и я могу войти как свой локальный пользователь в FTP-сервер. Какова причина позади этого? Почему значение по умолчанию не работает? Я изучаю Linux, таким образом, Ваше хорошее объяснение может помочь мне много
Я столкнулся с той же ошибкой аутентификации с pam_service_name=vsftpd
.
Следующий совет онлайн, я не мог разработать, почему установка pam_service_name=ftp
решила проблему, таким образом, я протестировал установку этого к pam_service_name=foobar
, и это также устранило проблему!
Правовая оговорка: Я также плохо знаком с Linux однако , я полагаю, что общепринятый совет установить pam_service_name=ftp
неправильный .
pam_service_name=vsftpd
выбирает существующий конфигурационный файл /etc/pam.d/vsftpd
, однако pam_service_name=ftp
будет искать /etc/pam.d/ftp
, который не существует (по крайней мере, в моей системе - Ubuntu 14.04.2 LTS). Я подозреваю, что это на самом деле обходит аутентификацию PAM, не жалуясь, что она не может найти файл.
, не используя допустимую конфигурацию PAM, это может менее безопасный.
Конечное решение
я закончил тем, что сохранил pam_service_name=vsftpd
и удостоверился, что оболочка пользователя существовала в /etc/shells
файл. http://www.cyberciti.biz/tips/howto-linux-shell-restricting-access.html
Рассмотрение /etc/pam.d/vsftd
# Standard behaviour for ftpd(8).
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth required pam_shells.so
Моя проблема была то, что оно перестало работать в эти auth required pam_shells.so
шаг. Я заставил всех своих пользователей FTP использовать эти /usr/sbin/nologin
оболочка, которая не существовала в /etc/shells
файл (нечеловечность, которой это могло бы быть всего /sbin/nologin
). Если Вы не уверены, попытайтесь комментировать auth required pam_shells.so
, чтобы видеть, является ли это причиной когда pam_service_name=vsftpd
.
Примечание: Дополнительные материалы для чтения предполагают, что это более чисто, чтобы вместо этого создать виртуальных пользователей, но это требует другого vsftpd и конфигурации PAM - http://www.sigerr.org/linux/setup-vsftpd-custom-multiple-directories-users-accounts-ubuntu-step-by-step/ .
В/etc/pam.d/vsftpd можно указать
auth required pam_nologin.so
таким образом, пользователи, вход в систему которых отключен через/usr/sbin/nologin, могут только войти в систему посредством ftp.
Примечание: Я считал, что добавление nologin к/etc/shells могло бы изложить угрозу нарушения безопасности на Serverfault.
Для меня проблема состояла в том, что я создал конфигурацию PAM (/etc/pam.d/vsftpd
) на машине Windows, приводящей к \r\n
окончания строки.
После того как я преобразовал окончания строки в стиль Linux (просто \n
), конфигурация PAM начала работать.
Я также сначала думал, что сервисное название PAM было неправильным, и попробовало pam_service_name=ftp
вместо pam_service_name=vsftpd
, но это не помогло вообще, и я соглашаюсь с оценкой Josef P., что это не способ пойти.