Я пытаюсь создать новую учетную запись 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 не удалось.
