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

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

Write failed: Broken pipe
Connection closed

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

1 ответ

Решение

В руководстве 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 с правильными разрешениями. Используйте монтирование bind, NFS или что-либо другое, что ваша ОС поддерживает для монтирования /data/docker папка в новой папке. Тогда вы бы установили /chroot/docker как папка chroot. Пользователи должны иметь доступ к содержимому /data/docker сквозь /chroot/docker дорожка.

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

Другие вопросы по тегам