Мне нужно разрешить недоверенному пользователю SFTP-доступ к определенному каталогу в корневом каталоге его веб-сервера. Я не хочу, чтобы он имел доступ к каким-либо другим частям системы (включая остальную часть сети), поэтому я подумал об использовании ChrootDirective
OpenSSH. По сути, что-то вроде подхода, описанного здесь.
Тем не менее, кажется, что нет никакого способа сделать это, одновременно позволяя веб-серверу (или сценарию git deploy) писать в этот каталог, потому что, как только я это делаю, я получаю фатальное: плохое владение или режимы для chroot Ошибка fatal: bad ownership or modes for chroot directory component "/srv/www/"
.
Я думал о создании каталога в другом месте и mount --bind
его, но, похоже, ограничение относится к каталогу chrooted, а не только к его родителям, поэтому я снова получаю ту же проблему.
Я понимаю, что это вопрос безопасности, но это не очень важно, поскольку:
- другим пользователям доверяют (ну, относительно, и они все равно не могут добавлять файлы suid)
- у ненадежного пользователя есть только SFTP-доступ, но не SSH, поэтому он не должен запускать что-либо в любом случае
Итак, что я упустил из виду? Какие-нибудь вменяемые выходы из этого беспорядка? (Без перехода на FTP или настройки incron/rsync между двумя каталогами желательно.)