So führen Sie einen Cron-Job mit dem Befehl sudo aus

97

Ist es möglich, einen Job cron auszuführen, der die sudo Befehl?

Wie:

 sudo rm somefile
    
sayem siam 09.08.2012, 19:51

3 Antworten

193

Ich werde nicht darauf eingehen, wie sehr das eine schlechte Idee ist; Einfach ausgedrückt, das Ausführen von sudo in crontab erfordert, dass Ihr Passwort irgendwo im Klartext gespeichert wird.

Es ist eine schlechte Idee.

Folgendes ist die bevorzugte Methode zum Ausführen von Verwaltungsaufgaben über cron. Da Sie nicht wirklich sudo in die crontab schreiben müssen, wenn Sie root's crontab modifizieren.

Benutze root's crontab

Führen Sie den folgenden Befehl aus:

sudo crontab -e

Dies öffnet die crontab von root . sudo ist nicht notwendig, um Ihren Befehl in diesem Kontext auszuführen, da es sowieso als root aufgerufen wird.

Daher würden Sie einfach folgendes an die crontab von root anhängen:

@hourly rm somefile

Wenn Sie jetzt absolut unsicher sein und Risiken mit Ihrem Passwort eingehen möchten, führt der folgende Befehl Ihren Befehl von Ihrer eigenen crontab aus und gibt Ihr Passwort automatisch ein, wenn Sie von sudo .

Auch hier wird nicht empfohlen .

Schreiben Sie in Ihrer eigenen crontab Ihren Befehl wie folgt:

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

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

Das sollten Sie nicht tun.

    
SirCharlo 09.08.2012, 20:03
25

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

Wenn Sie crontab verwenden, sollten Sie root's crontab verwenden. Dies wird es als root ausführen, und auch nicht sudo.

sudo crontab -e
    
tgm4883 09.08.2012 20:02
0

Führen Sie 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 wird nicht nach einem Passwort gefragt, wenn Sie den Befehl rm über vidyadhar ausführen.

    
Vidyadhar 09.08.2012 20:07

Tags und Links