Мне нужно (временно) посадить в тюрьму непривилегированного пользователя.
Я попробовал что-то вроде:
sudo chroot --userspec=mcon:users /wherever/chroottarget /bin/bash -i
Это почти работает, но не устанавливает env vars (в то время как "sudo" делает!), Поэтому я получаю сообщение об ошибке:
bash: /root/.bashrc: Permission denied
Как я могу решить проблему? (ПРИМЕЧАНИЕ: приведенная выше команда должна быть внутри скрипта bash)
ОБНОВЛЕНИЕ: я нашел (довольно замысловатый) способ сделать то, что мне нужно:
sudo bash -c "HOME=<jailed home> chroot --userspec=<user>:<group> <chroottarget> /bin/bash -i"
В идеале я должен читать HOME из jailed /etc /passwd вместе со всей другой средой (взять их из jailed /etc /profile), это "решение" сохранит все переменные в среде вызывающего.
Есть ли способ лучше?