SFTP chroot OpenSSH: каталог изоляции и каталог загрузки имеют разные права
Фотография конкретного исполнения не приложена.
При ChrootDirectory sshd проверяет все компоненты пути: они должны принадлежать root и не быть доступны на запись группе или остальным. Это требование к границе chroot, а не к пользовательскому рабочему каталогу. Попытка разрешить загрузку, сделав сам корень доступным пользователю на запись, нарушает предусмотренную проверку.
Поэтому пространство загрузки проектируют отдельно внутри допустимой структуры. После chroot сервер переходит в домашний каталог пользователя; его существование и смысл пути нужно проверить уже относительно нового корня. Правильный абсолютный путь на исходной машине не означает, что пользователь увидит его в том же виде внутри сессии.
Для in-process SFTP руководство оговаривает упрощённую среду по сравнению с интерактивной оболочкой; отдельные требования журналирования зависят от ОС. Сам chroot не является описанием всех разрешённых SSH-возможностей. Режим сессии и остальные ограничения обслуживания должны быть согласованы отдельной политикой.
В приёмке проверяют вход, разрешённую запись в дочерний каталог и отказ изменения границы chroot. Также сверяют получение ожидаемых журналов. Успешная аутентификация ключом не подтверждает готовность SFTP-сессии, корректность путей и возможность записывать только в предусмотренное пространство.
Основание — OpenSSH current OpenBSD manuals snapshot; portable release10.6 observed, not exact portable manual, разделы ChrootDirectory. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Удалённые узлы, ключи и файлы не проверялись; подключения, копирование и изменение прав не выполнялись. Версии и доступные параметры обеих сторон требуют подтверждения.