Cron di root ha vinto ' t Esegui script (autorizzazione negata)
Su Febbraio 15, 2021 da adminHo “modificato periodicamente la mia scheda cron di root su eseguire uno script che si trova nella cartella di un utente particolare utilizzando questo comando:
sudo crontab -e
Quando cron esegue lo script, questo è loutput:
sh: 1: /home/user/Location/Of/Script: Permission denied
Pensavo che cron di root avesse il permesso di fare qualsiasi cosa. Non ho alcun problema quando eseguo manualmente questo script come root.
Ho letto nella documentazione che è possibile trovare ulteriori informazioni sullerrore qui:
sudo cat /var/log/syslog
Ecco cosa ho trovato:
Jan 30 12:30:01 backup CRON[17702]: (CRON) info (No MTA installed, discarding output)
Tuttavia, io penso che questo non sia probabilmente correlato al problema dellautorizzazione negata.
Quindi cosa devo fare veramente?
Commenti
Risposta
Penso che il tuo script non è eseguibile. Quindi, utilizza il seguente comando per farlo:
chmod +x /home/user/Location/Of/Script
Oppure, se non sei il proprietario di quello script:
sudo chmod +x /home/user/Location/Of/Script
Commenti
- Quindi, affinché cron possa eseguire lo script, deve essere eseguibile, ma manualmente come root non ' Non serve questo flag, giusto?
- Dipende da come esegui lo script manualmente. Se esegui lo script utilizzando
./Scipt
o/home/user/Location/Of/Script
' non va bene. In genere qualsiasi script deve essere eseguibile. Vedi Come eseguire uno script di shell in Linux . - Ha senso, ma ho davvero eseguito questo script manualmente ./script modo senza incontrare problemi di autorizzazioni fino a quando non ho provato a cron. Grazie per il tuo aiuto.
/home/user/Location/Of/Script
? Per esempio.la -l /home/user/Location/Of/Script
. Per inciso, hai bisogno di un MTA installato per il normale uso interno, anche se non stai inviando / ricevendo email esternamente. Sono ' sono sorpreso che il tuo sistema non lo abbia già installato.