Frage Geben Sie das Passwort nur einmal für das Skript ein, das viele Sudo-Aufrufe durchführt [duplizieren]


Diese Frage hat hier bereits eine Antwort:

Ich schreibe ein Skript, um Build herunterzuladen und eine Reihe von Paketen zu installieren. Das Erstellen benötigt manchmal etwas Zeit und die Installation erfordert Root-Rechte:

machen; sudo make install

Was passiert, ist, dass wenn ein Build eine Weile dauert, ich weiterhin mein Passwort eingeben muss. Ich möchte es nur einmal eingeben können. Ich könnte das Skript mit root-Zugriff aufrufen, aber dann (wie ich es verstehe) wird jeder Aufruf, den es macht, mit root-Privilegien sein. Ich will das nicht, weil dann zB viele Dateien und Ordner erstellt werden, die nicht ohne Root-Zugriff gelöscht werden können.

Was ist der beste Weg dies zu tun?


4
2018-03-24 21:01


Ursprung




Antworten:


Verwenden Sie den Parameter timestamp_timeout. Verwenden Sie visudo, um die sudoers-Datei zu bearbeiten:

sudo visudo

und ändere die Standard-Zeile so, dass sie so aussieht:

Defaults   env_reset,timestamp_timeout=60

Dadurch bleibt Ihr Passwort 60 Minuten lang erhalten.

Ändere diese Zeit wie gewünscht :)


4
2018-03-24 21:08





Das Skript kann selbst Sudo-Aufrufe enthalten. Wenn Sie dann das Skript mit sudo ausführen, wird es alle sudos im Skript abdecken und sollte in Ordnung sein


0
2018-03-24 22:01



"Ich will das nicht, weil dann zB viele Dateien und Ordner erstellt werden, die nicht ohne Root-Zugriff gelöscht werden können" - Gauthier
Die Befehle haben Root-Zugriff. Das Skript wird als rot ausgeführt, so dass untergeordnete Prozesse (die Befehle im Skript) erzeugt und als root ausgeführt werden. - ActionParsnip