Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>sudo in einem Shellscript für einen Befehlsblock

sudo in einem Shellscript für einen Befehlsblock

Agrajag01.08.0416:35
Ich hab mir gerade ein einfaches Backup-Script geschrieben, was mir die Userordner und einige Dateien/Verzeichnisse aus dem System sichert. Das Script funktioniert im Wesendlichen schon sehr gut, aber eines gefällt mir noch nicht so:
<br>
<br>Das Script soll auch ohne sudo startbar sein. Ganz am Anfang frage ich mit "sudo echo" nach dem Passwort. Wie gesagt, das funktioniert im Wesendlichen. Nur, wenn ich jetzt kein gültiges Passwort eingebe, dann beendet er leider nicht das Script, sondern er führt alles weiter aus, bis zum nächsten sudo.
<br>
<br>Leider kann ich mit sudo keine Funktion aufrufen. Wie kann ich mir Admin-Rechte holen und dann einen kompletten Block ausführen lassen (oder auch nicht, wenn ich mich nicht autentifizieren konnte)?
<br>
0

Kommentare

Rantanplan
Rantanplan01.08.0416:46
Das geht ja auch so:
<br>
<br>sudo dein_backup_skript
<br>
<br>
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
Agrajag01.08.0416:54
Ja, das weiß ich auch, aber es erscheint mir irgendwie so unelegant. Es muss doch möglich sein, innerhalb eines Scriptes einen kompletten Block unter einen anderen Benutzer auszuführen, oder?
<br>
<br>Es geht mir dabei auch um eine gewisse Narrensicherheit. Wie vermeide ich z.B., dass das Script ausgeführt wird, wenn nicht die richtigen Rechte vorliegen?
0
Agrajag02.08.0401:26
Ach, Die Lösung ist (wie so oft) recht einfach:
<br>
<br>-----8<-----
<br>
<br>function backup () {
<br> ...
<br>}
<br>
<br>sudo echo -n
<br>if [ $? -ne 1 ]
<br> then backup
<br>fi
<br>
<br>---8-----
<br>
<br>Zuerst das Passwort anfordern und eine Dummy-Ausgabe (nichts), dann nur zur Backup-Routine springen, wenn sudo nicht fehlschlug.
<br>
<br>Da hätte ich uch eher drauf kommen können, ich hatte mich nur so darauf versteift es &rsquo;direkt&rsquo; mit sudo zu machen.
<br>
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.