sudo für einen einzelnen Befehl im Bash-Skript

8

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?

    
rick 07.05.2011, 04:22
quelle

3 Antworten

6

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%     
sehe 07.05.2011, 09:35
quelle
0

Versuchen Sie sudo su anstelle von su , um wieder zu einem normalen Benutzer zu wechseln.

    
Adam Rosenfield 07.05.2011 04:32
quelle
0

Verwenden Sie sudo ohne su :

%Vor%

Hier ist die Ausgabe, wenn ich es ausführe:

%Vor%     
Gordon Davisson 07.05.2011 15:05
quelle

Tags und Links