Мне нужна помощь в этом.
Я пытаюсь поместить пользователей SSH в тюрьму в их собственные папки, чтобы они могли подключаться по SFTP к серверу, не видя файловую систему.
Я следовал простому онлайн-руководству и мне удалось поместить пользователя в его домашнюю папку по умолчанию (/ home / user). Однако, если я попытаюсь изменить их домашнюю папку, пользователь не сможет войти в систему.
У меня 2 пользователя: kevin и default
cat /etc/passwd
показывает
kevin:x:500:500::/home/kevin:/bin/false
default:x:501:500::/var/www/vhosts/default:/bin/false
и мой файл sshd_config выглядит как
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
и cat /etc/group
показывает
sftponly:x:500:default,kevin
kevin:x:501:
default:x:502:
Кто-нибудь знает, почему пользователь kevin работает так, как ожидалось, но пользователь по умолчанию не может войти в систему.
Спасибо.
РЕДАКТИРОВАТЬ
Я отредактировал свой файл passwd и изменил default:x:501:500::/var/www/vhosts/default:/bin/false
к default:x:501:500::/home/default:/bin/false
и пользователь по умолчанию теперь может войти в систему.
Проблема возникает только в том случае, если я хочу изменить дом пользователя на / var / www / vhosts / user.
Не только домашний каталог пользователя, но и все его компоненты должны принадлежать root. В вашем случае это все эти каталоги: {/var, /var/www, /var/www/vhosts/default, /var/www/vhosts/default}
. Кроме того, эти каталоги не могут быть доступны для записи другим пользователям или группам.
Наконец, если у вас есть selinux
работает в принудительном режиме, убедитесь, что в домашнем каталоге пользователя задан правильный контекст. Самый простой способ сделать это - использовать chcon
инструмент (непостоянное изменение) или с semanage
(стойкое изменение).
Я предполагаю, что это SELinux его блокирует.
Чтобы временно отключить его и проверить, не проблема, выполните setenforce 0
чтобы установить его в разрешающий режим. Он снова включится после перезагрузки или после переключения флага обратно на 1.
Чтобы навсегда установить его в разрешающий режим, отредактируйте /etc/selinux/config
и установить SELINUX=permissive
. Если это целевой компьютер для конечных пользователей, я предлагаю оставить его включенным. Установите пакет под названием setroubleshoot и найдите несколько руководств по использованию прилагаемой к нему команды sealert. Он пытается сделать для вас разумные предложения о том, как обрабатывать элементы, которые блокируются SELinux. Он также пишет и компилирует политики для вас, поэтому он довольно удобен для новичков.
Домашний каталог пользователя должен быть владельцем root