Назад | Перейти на главную страницу

Настройка chrooted пользователя SFTP в каталоге, родительский элемент которого имеет права записи для группы

У меня есть пользователь, у которого есть только привилегии sftp (без ssh) и который chrootted в SFTP на /data/docker. /data (который является отдельным диском) имеет 775 разрешений, и я бы хотел оставить его таким. Однако, когда есть групповой доступ на запись к /data, Я получаю эту ошибку при попытке войти в sftp от имени этого пользователя:

Write failed: Broken pipe
Connection closed

Как разрешить SFTP без chmodding /dataдо 755?

OpenSSH sshd_config В руководстве довольно четко изложены требования к каталогу chroot:

 ChrootDirectory
         Specifies the pathname of a directory to chroot(2) to after
         authentication.  All components of the pathname must be root-
         owned directories that are not writable by any other user or
         group.

Если вы хотите /data должен быть режим 0775, то он не может быть частью пути к папке chroot SSH.

Я думаю, что способ обойти это с OpenSSH - создать другой путь, например /chroot с правильными разрешениями. Использовать привязать крепление, NFS или что-то еще, что поддерживает ваша ОС, чтобы подключить /data/docker папка в новой папке. Тогда вы бы установили /chroot/docker как папку chroot. Пользователи должны иметь доступ к содержимому /data/docker сквозь /chroot/docker дорожка.

В качестве альтернативы вы можете создать и использовать свою собственную копию OpenSSH sshd без этого ограничения. Или вы можете подумать об использовании другого SFTP-сервера. JScape есть коммерческий продукт, который, вероятно, сделает то, что вы хотите.