Wie führe ich einen Befehl in einem Chroot-Gefängnis aus, der nicht als root und ohne sudo ausgeführt wird?

Ich richte eine minimale Chroot ein und möchte vermeiden, dass sudo oder su darin enthalten sind, aber meine Prozesse weiterhin als Nicht-Root ausführen. Dies ist ein kleiner Trick, wenn Sie chroot requiers root ausführen. Ich könnte ein Programm schreiben, das dies tut und ungefähr so aussieht:

uid = LookupUser(args[username])  // no /etc/passwd in jail
chroot(args[newroot])
cd("/")
setuids(uid)
execve(args[exe:])

Ist das meine beste Wahl oder gibt es ein Standardwerkzeug, das das für mich erledigt?

Ich habe mein eigenes gerolltHie:

Antworten auf die Frage(10)

Ihre Antwort auf die Frage