Да, Вы более или менее корректны на всех 3 точках.
Посмотрите, что Введение в Виртуализацию на Включает Wiki IBM PowerVM. Это предоставляет некоторую вводную подробную информацию о PowerVM, и я рекомендовал бы вырыть немного больше на основной странице что Wiki, существует много больших статей о там.
Ух. Я решил проблему. Это составляет конфигурацию, но в/etc/pam.d/vsftpd
Поскольку ssh сессии успешно выполнились, в то время как сеансы FTP перестали работать, я перешел в
/etc/pam.d/vsftpd, удалил все, что было туда и вместо этого помещено содержание./sshd для соответствия правилам точно. Все работали!
Методом устранения я нашел, что незаконная строка была:
auth required pam_shells.so
Удаление его позволяет мне продолжать двигаться.
Бочки, "pam_shells является модулем PAM, который только предоставляет доступ к системе, если пользователи окружают, перечислены в/etc/shells". Я смотрел там и конечно же, никакой удар, нет ничто. Это - ошибка в vsftpd конфигурации, по-моему, поскольку нигде в документации не делает она имеет Вас редактирующий/etc/shells. Таким образом стандартная установка и инструкции не работают, как указано.
Я пойду, находят, где я могу отправить ошибку теперь.
Как Вы упомянули в своем собственном ответе, пользовательская оболочка должна быть перечислена в /etc/shells
. Вы могли установить /sbin/nologin
как пользовательская оболочка, чтобы запретить ssh и позволить ftp, не изменяя pam конфигурацию:
usermod -s /sbin/nologin restricted_ftp_user
и затем отредактируйте vsftpd. conf (с vi или nano)
Я использую Ubuntu и имел такую же проблему
решение:
add-shell /sbin/nologin
sudo usermod -s /sbin/nologin ftpme
sudo vi /etc/pam.d/vsftpd
, затем комментарий и добавьте строки в следующем
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
@include common-auth
@include common-account
@include common-password
@include common-session
Я также столкнулся с таким же странным поведением, когда FTP -Пользователь настроен с
# finger <user>
Login: <user> Name:
Directory: /home/user-dir Shell: /sbin/nologin
Never logged in.
No mail.
No Plan.
в одной Системе можно войти, а в другой нет.
В дополнение к ответу @KateYoak выяснилось, что файл /etc/shells
был другим и не включал оболочку /sbin/nologin
. который сделал аутентификацию PAM в/etc/pam.d/vsftpd
auth required pam_shells.so
неудача
Просто добавив в /etc/shells
файл недостающие строки
/sbin/nologin
/usr/sbin/nologin
регистрация в /etc/pam.d/vsftpd
сработала.
Таким образом, рабочий /etc/shells
файл должен иметь:
# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
В более поздних версиях (Centos8 )/etc/shells
содержит только:
# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
и учетные записи пользователей в этих системах создаются с помощью /usr/bin/false
оболочки :
# cat /etc/passwd|grep -i ftp_user01
ftp_user01:x:1004:1004:FTP Account for user01:/home/user01:/usr/bin/false
Несмотря на то, что эта конфигурация не дает автоматического доступа к FTP каким образом.
$ ftp ftp-server02.domain.com
Connected to ftp-server02.domain.com (ip.add.re.ss).
220 FTP Service of Server ftp-server02
Name (ftp-server02.domain.com:local_user02): ftp_user01
331 Password required for ftp_user01
Password:
530 Login incorrect.
Login failed.
Remote system type is UNIX.
Using binary mode to transfer files.
Всегда требуется вставить /usr/bin/false
в/etc/shells
Таким образом Минимальная конфигурация для работы FTP должна быть:
# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/usr/bin/false
Заметка сайта о мысли @Greeso:
man
страницы на /sbin/nologin
объясняют:
справочная страницаnologin
:
nologin displays a message that an account is not available and exits non-zero. It is intended as a replacement shell field to deny login access to an account.
nologin is a per-account way to disable login (usually used for system accounts like http or ftp).
Таким образом, при выполнении команды /usr/sbin/nologin
отображается:
$ /usr/sbin/nologin ; echo "res: '$?'"
This account is currently not available.
res: '1'
Таким образом, боты , которые пытаются атаковать систему полным перебором и получают это сообщение, могут использовать его, чтобы сделать вывод, что Учетная запись существует в Системе и что Логин предназначен для службы FTP или HTTP. Таким образом, вы можете понимать это изменение как стратегию усиления безопасности системы.
в моем случае я решил прокомментировать строку авторизации в конфигурационном файле /etc/pam.d/vsftpd
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/f$
#auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
Вот ты и причина. Если вы добавите /sbin/nologin в качестве системы оболочки, вы, вероятно, сможете открыть нежелательный бэкдор в своей системе. Вместо этого изменение этого файла, безусловно, влияет только на vsftpd .
Я не знаю, ищет ли другой процесс, такой как sshd , системные оболочки, но я думаю, что изменение файла pam.d является лучшим решением, чем другие.