1

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

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

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

Вам нужно изменить переменную окружения $ HOME, чтобы она соответствовала пользователю.

export HOME=/home/user-name

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