Запуск chroot и зайти в непривилегированный дом пользователя

664
ZioByte

Мне нужно (временно) посадить в тюрьму непривилегированного пользователя.

Я попробовал что-то вроде:

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), это «решение» сохранит все переменные в среде вызывающего.

Есть ли способ лучше?

1

1 ответ на вопрос

0
godblessfq

You need to change the environment variable $HOME to match the user's.

export HOME=/home/user-name 

Похожие вопросы