Я пытаюсь создать новую учетную запись SFTP для моего сервера. Когда я точно следую этим инструкциям, то все работает нормально: https://www.thegeekstuff.com/2012/03/chroot-sftp-setup/
Я могу связаться с пользователем guestuser
через sftp
, просмотреть мой домашний каталог и перейти на один уровень выше от incoming
в /sftp/guestuser
.
Я даже могу изменить значение ChrootDirectory
в /etc/ssh/sshd_config
чтобы оно было конкретно /sftp/guestuser
вместо реализации параметра %u
. Таким образом, жестко закодированные имена каталогов работают нормально.
Но с этого момента, если все, что я делаю, это ChrootDirectory
моей группы sftpusers на sftpusers
моего реального веб-сайта по /var/www/www.example.com
, то я больше не смогу подключиться через команду sftp
этого пользователя. Оболочка выводит:
Соединение с www.example.com закрыто удаленным хостом. Не удалось прочитать пакет: сброс соединения по пиру
Я определенно сделал:
- Убедитесь, что у меня есть
incoming
папка в моем каталоге/var/www/www.example.com
- Установите права на
/var/www/www.example.com
и/var/www/www.example.com/incoming
дляguestuser:sftpusers
- Попытался установить домашний каталог пользователя в
/
, выполнивusermod guestuser -d /
/sftp/guestuser
(тот, с которым он работал) находится во владении root:root
, поэтому тот факт, что разрешения /var/www
находятся на root:root
не должен иметь значения (?)
Почему я не могу изменить домашний каталог моего нового пользователя SFTP?
ОБНОВИТЬ
Я могу изменить каталог на:
/sftp
/
/var
/var/www
Те все работают. Но как только еще один попадает в /var/www
, например /var/www/test
, он не работает. Я попытался удалить точки из исходного имени каталога, которое было www.example.com
, но это не имело значения.
Это не ограничивает количество уровней подкаталогов, потому что /sftp/guestuser/incoming
также работает. Тестировать его с новым каталогом /web/www.example.com
не удалось.