Das kann eine dumme Frage sein.
Ich habe ein Skript, das ich zwischen Mac OS X und einer Linux-Box, die ich verwende, portieren möchte. In OS X erfordert ein Befehl im Skript sudo
, während dies in der Linux-Box nicht der Fall ist.
Kurz gesagt, wie kann man einen Befehl in einem Skript mit sudo
ausführen, während dann die erhöhten Rechte für den Rest des Skripts entfernt werden?
Ich habe versucht,
zu verwenden %Vor%und
%Vor% aber beide scheinen Fehler zu haben. (Sie sagen "Entschuldigung" und gehen weiter, ich nehme an, da versucht wird, als root
zu laufen und root
hat kein Passwort).
Ich weiß, dass es einen albernen und einfachen Weg geben muss, dies zu tun, was schlagen alle vor?
Sie können die sudo-Berechtigung (eigentlich: schließen Sie das sudo-Zeitfenster frühzeitig) durch Ausführen von:
aufheben %Vor% Außerdem können Sie sudo so konfigurieren, dass nur erhöhte Berechtigungen für bestimmte Befehle zulässig sind, oder dass Sie sich für bestimmte Befehle nicht als root ausgeben. Siehe man sudoers
. Der Abschnitt Beispiele macht deutlich, dass der Konfigurierbarkeit von sudo praktisch keine Grenzen gesetzt sind (Rollen, Hosts, Befehle, Erlauben von Escaping, Erlauben von sudo Zielbenutzern, Ausnahmen von erlaubten Dingen, Passwortlose Autorisierung etc ).
Hoffentlich ein interessantes Beispiel in Ihrem Kontext:
Der Benutzer fred kann Befehle als beliebiger Benutzer im DB Runas_Alias (Oracle oder Sybase) ausführen, ohne ein Passwort anzugeben.
%Vor%
Wenn du / etc / sudoers (visudo!) nicht wirklich einmischen willst / willst, dann empfehle ich etwas wie
%Vor% Versuchen Sie sudo su
anstelle von su
, um wieder zu einem normalen Benutzer zu wechseln.
Verwenden Sie sudo
ohne su
:
Hier ist die Ausgabe, wenn ich es ausführe:
%Vor%