ОБНОВИТЬ:
Я так и не понял этого. Вместо этого я просто использовал jailkit
поскольку существует тонна (хотя иногда и устаревшей) документации по использованию. Мне все еще интересно узнать, как получить schroot
хоть работать.
Я нашел тонну документации по настройке schroot / debootstrap, а также массу вещей по заключению в тюрьму sftp и несколько скромных инструкций по созданию chrooted shell, но я не могу найти ничего, чтобы все это работало слаженно. Похоже, что большинство руководств ориентировано на создание изолированной среды сборки, которая мне не нужна.
Я установил schroot с env на /srv/chroot/systemid
. Это хорошо работает, я могу начать сеанс нормально с schroot -c systemid -u somejaileduser
.
Что я не могу заставить работать должным образом, так это chroot сеанса ssh. Моя текущая конфигурация выглядит так:
Match Group jail
ChrootDirectory /srv/chroot/systemid
# other stuff to out law tcpforwarding and what not
Этот вид работы заключается в том, что я получаю сеанс chrooted ssh, но он выгружает меня прямо в chroot в качестве рабочего каталога. Я думаю, это потому, что сессия никогда не начинается, и поэтому /home
никогда не привязывается к /srv/chroot/systemid/home
(если ls /home
в сеансе ssh его пусто).
Так что, шаги настройки, которые мне здесь не хватает?
sshd_config есть переменные, которые можно использовать с ChrootDirectory.
Match Group jail
# %u is replaced by the username, %h is the full home path
ChrootDirectory /srv/chroot/systemid/%u
#ChrootDirectory %h
Во многих из этих случаев мне интересно, что вместо заключения в тюрьму каждой учетной записи пользователя нужно просто предоставить каждому пользователю небольшую виртуальную машину на хосте.
Похоже, что сбор всех файлов, необходимых для создания работоспособной chroot jail для каждого пользователя, проблематичен, легко вызывает проблемы и очень сложен.