Ich entwickle derzeit eine Anwendung, die Befehle automatisch auf mehreren Servern ausführen kann.
Wenn ich eine Dienstkonfiguration ändere, muss ich sie neu starten (oder neu laden) und daher benötigen einige der Befehle Root-Berechtigungen. Damit dies funktioniert, habe ich das Kennwort des Benutzers verschlüsselt und in einer Textdatei gespeichert, um es bei sudo-Befehlen verwenden zu können. Ich glaube, dass dies eine große Bedrohung darstellt, aber ich wollte auch nicht, dass die Anwendung mit Root-Berechtigung ausgeführt wird.
Irgendwelche Ideen?
Antwort1
Sie können einschränken, welche Befehle Benutzer ausführen können übersudoSie können auch eineKein PasswdOption insudoersDatei im Kontext dieses Benutzers, anstatt die Funktion zur Kennwortverschlüsselung zu verwenden.
Hier ist ein Beispiel, wie man einem nicht privilegierten Benutzer den Neustart desiptablesService:
geewid ALL = (root) NOPASSWD: /sbin/service iptables restart, /sbin/service iptables reload
Die Befehlsliste ist durch Kommas getrennt ...
Sie können auchCmnd_AliasBesonderheit:
Cmnd_Alias FOOBAR = /sbin/service iptables restart, /sbin/service iptables reload
geewid ALL = (root) NOPASSWD: FOOBAR