Démarrer un chroot et se rendre dans la maison de l'utilisateur non privilégié

1

Je dois emprisonner (temporairement) un utilisateur non privilégié.

J'ai essayé quelque chose comme:

sudo chroot --userspec=mcon:users /wherever/chroottarget /bin/bash -i

Cela fonctionne presque , mais cela ne règle pas env vars (alors que "sudo" le fait!), Je reçois donc l'erreur:

bash: /root/.bashrc: Permission denied

Comment puis-je résoudre le problème? (NOTE: la commande ci-dessus devrait être à l'intérieur d'un script bash)

MISE À JOUR : J'ai trouvé un moyen (plutôt compliqué) de faire ce dont j'ai besoin:

sudo bash -c "HOME=<jailed home> chroot --userspec=<user>:<group> <chroottarget> /bin/bash -i"

Idéalement, je devrais lire HOME dans / etc / passwd emprisonné , ainsi que dans tout autre environnement (les extraire de / etc / profile emprisonné ), cette "solution" conservera toutes les variables de l'environnement de l'appelant.

Y a-t-il un meilleur moyen?

ZioByte
la source

Réponses:

0

Vous devez modifier la variable d'environnement $ HOME pour qu'elle corresponde à celle de l'utilisateur.

export HOME=/home/user-name
godblessfq
la source