setuid-Skripte
-
Warum werden bei Shell-Skripten eigentlich ein gesetztes +s ignoriert? Irgendwie hab ich was mit Sicherheitsluecken und so in Erinnerung, weiss aber nichts genaueres. Gibt's 'nen einfachen und sicheren Weg, da drum herum zu kommen?
Folgende Situation: Ein amd64-Rechner mit 'nem 32bit-chroot. Jetzt muss ich jedesmal, wenn ich 'ne 32bit-Anwendung ausfuehren will, folgendes machen:
- root werden
- /proc, /dev, etc. bind-mounten
- chrooten
- im chroot die root-Rechte wieder abgeben
- die Anwendung ausfuehren
- nach Verlassen des chroots die bind-mounts wieder aufhebenKann man natuerlich alles schoen skripten, aber geht das auch ohne sudo? Ich kann ja schlecht das ganze Skript mit sudo ausfuehren (dann hab ich den Usernamen nicht, den ich fuer Schritt 4 brauche), und jeden einzelnen Befehl innerhalb des Skripts mit sudo ausfuehren kommt mir irgendwie merkwuerdig vor.
-
dchroot
die bind-mounts müssen aber schon stehen.
-
Sieht gut aus, danke.
-
$ dchroot -d Executing shell in '32bit' chroot. /bin/bash: uo: No such file or directory dchroot: Child exited non-zero. dchroot: Operation failed.
(uo ist dabei mein Benutzername)
Huch? Ohne -d gehts ohne Probleme.[edit]trace geloescht, dchroot ist natuerlich +s und da bringt tracen nichts...[/edit]