1

Мне нужно разрешить недоверенному пользователю 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 между двумя каталогами желательно.)

1 ответ1

0

Вы можете установить домашний каталог пользователя в качестве его папки chroot, как описано в учебнике, на который вы ссылались. Затем подключите /srv/www/ в подкаталог домашнего каталога пользователя:

mkdir /home/jdoe/srv-www
mount --bind /srv/www /home/jdoe/srv-www

После соединения с sftp, ему придется перейти в подкаталог, чтобы получить доступ к содержимому /srv/www/ . Вы можете заблокировать разрешения для домашнего каталога пользователя и других файлов, если хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .