it-swarm.com.de

Ausführen eines Cron-Jobs mit dem Sudo-Befehl

Ist es möglich, einen cron Job auszuführen, der den Sudo Befehl benötigt?

Mögen:

 Sudo rm somefile
117
sayem siam

Ich werde nicht darauf eingehen, wie sehr dies eine schlechte Idee ist. Wenn Sie Sudoin crontab ausführen, muss Ihr Kennwort irgendwo im Klartext gespeichert sein.

Es ist eine schlechte Idee.


Das Folgende ist die bevorzugte Methode zum Ausführen von Verwaltungsaufgaben über cron. Da Sie nicht wirklich Sudo in die crontab schreiben müssen, wenn Sie die crontab von root ändern.

Verwende root's crontab

Führen Sie den folgenden Befehl aus:

Sudo crontab -e

Dies öffnet die Crontab von root. Sudo ist nicht erforderlich, um Ihren Befehl in diesem Kontext auszuführen, da er ohnehin als root aufgerufen wird.

Daher würden Sie einfach Folgendes an die crontab von root anhängen.

@hourly rm somefile

Wenn Sie absolut unsicher sein und Risiken mit Ihrem Passwort eingehen möchten, wird der folgende Befehl von Ihrer eigenen Crontab ausgeführt und Ihr Passwort automatisch eingegeben auf Aufforderung von Sudo.

Wieder dies wird nicht empfohlen.


Schreiben Sie in Ihrer eigenen Crontab Ihren Befehl wie folgt:

@hourly echo "password" | Sudo -S rm somefile

Der offensichtliche Nachteil hierbei ist, dass Ihr Passwort im Klartext lesbar ist, sollte jemals jemand auf Ihre crontab zugreifen.

Das solltest du nicht tun.

237
SirCharlo

Wenn Sie das Skript aus einem der Cron-Verzeichnisse (/etc/cron.*) einfügen, müssen Sie Sudo nicht verwenden, da es als root ausgeführt wird.

Wenn Sie crontab verwenden, sollten Sie die crontab von root verwenden. Dies wird als root ausgeführt und benötigt auch kein Sudo.

Sudo crontab -e
33
tgm4883

Führen Sie den folgenden Befehl im Terminal aus

Sudo visudo

Die folgende Zeile wurde am Ende der Datei hinzugefügt:

vidyadhar  ALL= NOPASSWD: /bin/rm

Im obigen Beispiel ist vidyadhar der Benutzername und es wird nicht nach dem Passwort gefragt, wenn Sie den Befehl rm über vidyadhar ausführen.

3
Vidyadhar