Sie müssen die Umgebungsvariable $ HOME an den Benutzer anpassen.
export HOME=/home/user-name
Ich muss (vorübergehend) einen nicht privilegierten Benutzer ins Gefängnis stecken.
Ich habe so etwas ausprobiert:
sudo chroot --userspec=mcon:users /wherever/chroottarget /bin/bash -i
Das funktioniert fast, aber es wird nicht env vars gesetzt (während "sudo" tut!), Daher bekomme ich den Fehler:
bash: /root/.bashrc: Permission denied
Wie kann ich das Problem lösen? (HINWEIS: Der obige Befehl sollte sich innerhalb eines Bash-Skripts befinden.)
UPDATE : Ich habe einen (ziemlich konvexen) Weg gefunden, um das zu tun, was ich brauche:
sudo bash -c "HOME=<jailed home> chroot --userspec=<user>:<group> <chroottarget> /bin/bash -i"
Idealerweise sollte ich HOME aus der Jailed-Datei / etc / passwd sowie alle anderen Umgebungen (aus der Jailed-Datei / etc / profile) lesen. Diese "Lösung" wird alle Variablen in der Aufrufer-Umgebung beibehalten.
Gibt es einen besseren Weg?
Sie müssen die Umgebungsvariable $ HOME an den Benutzer anpassen.
export HOME=/home/user-name