Root-Cron gewonnen ' t Skript ausführen (Berechtigung verweigert)
On Februar 15, 2021 by adminIch habe meinen Root-Cron-Tab regelmäßig bearbeitet Führen Sie mit diesem Befehl ein Skript aus, das sich im Ordner eines bestimmten Benutzers befindet:
sudo crontab -e
Wenn cron das Skript ausführt, ist dies die Ausgabe:
sh: 1: /home/user/Location/Of/Script: Permission denied
Ich dachte, dass der Root-Cron die Erlaubnis hat, irgendetwas zu tun. Ich habe kein Problem, wenn ich dieses Skript manuell als root ausführe.
Ich habe in der Dokumentation gelesen, dass weitere Fehlerinformationen gefunden werden können hier:
sudo cat /var/log/syslog
Hier ist, was ich gefunden habe:
Jan 30 12:30:01 backup CRON[17702]: (CRON) info (No MTA installed, discarding output)
Ich jedoch Ich denke, dies hängt wahrscheinlich nicht mit dem Problem zusammen, bei dem die Berechtigung verweigert wurde.
Was muss ich also wirklich tun?
Kommentare
- Können Sie Berechtigungen für
/home/user/Location/Of/Script
auflisten? Z.B.la -l /home/user/Location/Of/Script
. Im Übrigen muss ein MTA für den normalen internen Gebrauch installiert sein, auch wenn Sie keine externen E-Mails senden / empfangen. Ich ' bin überrascht, dass Ihr System es noch nicht installiert hat. - Dies kann auf alle möglichen Dinge zurückzuführen sein. Bitte posten Sie die Ausgabe des angeforderten Befehls @FaheemMitha sowie die entsprechende Zeile in Ihrer crontab
- -rw-r – r– (dies war das Problem) – Vielen Dank
- Sie sagen, Sie haben es mit " -rw-r – r – " gelöst, aber ich ' weiß nicht, was das ist oder wie man es benutzt und ich habe das gleiche Problem wie in diesem Thread beschrieben. Können Sie Ihre Lösung für die Nachwelt etwas genauer beschreiben? Leute wie ich werden wirklich dankbar dafür sein. Vielen Dank!
- @JohnsonJason: Das Problem war, dass die Berechtigungen für die Skriptdatei keine Ausführung erlaubten. Schauen Sie sich die akzeptierte Antwort an, die zeigt, wie Sie dem Skript die Berechtigung zur Ausführung erteilen.
Antwort
Ich denke dass Ihr Skript nicht ausführbar ist. Verwenden Sie also den folgenden Befehl, um es zu erstellen:
chmod +x /home/user/Location/Of/Script
Oder, wenn Sie nicht der Eigentümer dieses Skripts sind:
sudo chmod +x /home/user/Location/Of/Script
Kommentare
- Damit cron das Skript ausführen kann, muss es ausführbar sein, aber manuell als root nicht ' Benötigen Sie dieses Flag nicht?
- Hängt davon ab, wie Sie das Skript manuell ausführen. Wenn Sie das Skript mit
./Scipt
oder/home/user/Location/Of/Script
ausführen, ist ' nicht in Ordnung. Im Allgemeinen muss jedes Skript ausführbar sein. Siehe Ausführen eines Shell-Skripts unter Linux . - Das ist sinnvoll, aber ich habe dieses Skript wirklich manuell ausgeführt ./script Weg, ohne auf irgendwelche Berechtigungsprobleme zu stoßen, bis ich versuchte, es zu cronen. Vielen Dank für Ihre Hilfe.
Schreibe einen Kommentar