У меня есть пользователь, у которого есть только привилегии 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 есть коммерческий продукт, который, вероятно, сделает то, что вы хотите.