Angesichts der Gefahren von SUID-Shell-Skripten gibt es einen sichereren Weg Passwortlosen Zugriff auf Skripte (bash, PHP) mit Root-Rechten in Linux geben?
(Ubuntu 8.10)
Sie könnten sudo in Betracht ziehen.
Obwohl nicht "passwortlos", muss der Benutzer nicht das root-Passwort erhalten. Es kann auch einen Audit-Trail für die Verwendung des Skripts bereitstellen.
edit: Laut Kommentar von Chris gibt es eine Option, für bestimmte Befehle gar kein Passwort zu benötigen, siehe hier für Details. Es kann auch so eingestellt werden, dass das Passwort nicht übermäßig angefordert wird, d. H. Eine Eingabe des Passworts kann für mehrere Befehle während einer Nutzungsdauer gut sein.
Übrigens, Sudo ist in Ubuntu integriert und gut mit Gnome integriert. Wenn Ubuntu Sie auffordert, Ihr Passwort für privilegierte Operationen einzugeben, ist dies Sudo unter der Haube.
Überprüfe unbedingt den Abschnitt " VERHINDERN VON SHELL ESCAPES " auf der Sudoers-Manpage, wenn Sie gehen die Sudo-Route.
Ich würde sudo empfehlen. Stellen Sie sicher, dass Sie Ihre sudoers
-Datei entsprechend anpassen. und ja, Sie können zulassen, dass einige Befehle ausgeführt werden, ohne dass ein Passwort angefordert wird.
Das Konfigurieren von sudo, damit normale Benutzer Shell-Skripte mit erhöhten Rechten ausführen können, ist aus Sicherheitsgründen nicht besser, als das Skript suid root zu machen. Alle Fallstricke bestehen noch. Stattdessen sollten Sie ein geeignetes Programm schreiben, das umfangreiche Sicherheitsprüfungen durchführt. Einige Punkte zu beachten:
Für eine wirklich schwergewichtige Lösung sollten Sie ein MAC-System (Mandatory Access Control) wie SELinux, AppArmor, TrustedBSD usw. in Erwägung ziehen.
Um die Sicherheit zu verbessern, überlegen Sie, ob es möglich ist, die Operation als spezieller Benutzer oder Gruppe auszuführen, die genau die Zugriffsrechte hat, die dafür benötigt werden. Dann können Sie das Skript setuid / setgid für diesen Benutzer oder diese Gruppe erstellen.
Wenn der Anwendungsfall eine Maschine ist, die unter VirtualBox läuft und Sicherheit kein Problem ist, wollen Sie nur eine Lichtschranke, um sich am Fuß nicht zu erschießen, was dann? (Dann machen die Sicherheitsargumente keinen Sinn, da es keine Rolle spielt, ob die Maschine von einem Außenseiter kompromittiert wird, der sie sowieso nicht sehen kann, weil VirtualBox sie über NAT isoliert.)