it-swarm.com.de

Wie führe ich Sudo ... Befehle in Cronjobs in Ubuntu 16.04 aus?

Es gibt bestimmte Terminalbefehle, die nur als Root-Benutzer ausgeführt werden können. Wenn wir versuchen, sie ohne das Schlüsselwort Sudo auszuführen, schlagen sie mit dem Fehler Permission denied fehl. Ein Beispiel wäre ein Befehl zum Erstellen eines Verzeichnisses/Ordners an bestimmten Orten.

Ich muss einen solchen Befehl als Teil eines Cron-Jobs in meinem Ubuntu 16.04 ausführen. Normalerweise könnte ich den Befehl mit dem Schlüsselwort Sudo im Terminal ausführen, und ich würde aufgefordert, das Kennwort des Root-Benutzers einzugeben, und dann würde der Befehl erfolgreich ausgeführt.

Aber jetzt, da ich diesen Befehl als Teil eines Cron-Jobs in meine crontab -Datei eingeben muss, wie mache ich das? Wie führe ich einen solchen Befehl als Teil eines Cronjobs aus?

2
Shy

Führen Sie einfach crontab -e als root user aus. Dies würde Ihren Befehl mit der Berechtigung root ausführen, und es ist nicht erforderlich, Sudo davor hinzuzufügen.

Sie können sich jedoch nicht mit einem root-Benutzer anmelden und müssen Ihren Job als Cron-Job ausführen. Geben Sie den vollständigen Pfad in der Cron-Datei an:

 $ * * * * * /usr/bin/Sudo /your/command

Sie können auch NOPASSWD vor Ihrem Befehl in der /etc/sudoers -Datei hinzufügen, um den Befehl als root auszuführen, jedoch ohne Passwort.

4
Ali Ghasempour

Eine andere Möglichkeit besteht darin, es in die systemweite crontab unter /etc/crontab (oder in eine Datei unter /etc/cron.d) einzufügen, in der Sie den Benutzer angeben können, unter dem jede Task ausgeführt wird:

* * * * * root mkdir /foo/bar
2
fkraiem