Articles
Wygrana Root Cron ' t Uruchom skrypt (odmowa uprawnień)
On 15 lutego, 2021 by adminEdytowałem moją główną kartę cron, aby okresowo wykonaj skrypt znajdujący się w folderze określonego użytkownika za pomocą tego polecenia:
sudo crontab -e
Kiedy cron uruchamia skrypt, to jest wynik:
sh: 1: /home/user/Location/Of/Script: Permission denied
Myślałem, że root cron ma pozwolenie na wszystko. Nie mam problemu, gdy ręcznie uruchamiam ten skrypt jako root.
W dokumentacji przeczytałem, że można znaleźć dalsze informacje o błędach tutaj:
sudo cat /var/log/syslog
Oto, co znalazłem:
Jan 30 12:30:01 backup CRON[17702]: (CRON) info (No MTA installed, discarding output)
Jednak ja Myślę, że jest to prawdopodobnie niezwiązane z problemem odmowy pozwolenia.
Więc co naprawdę muszę zrobić?
Komentarze
Odpowiedź
Myślę że twój skrypt nie jest wykonywalny. Dlatego użyj następującego polecenia, aby to zrobić:
chmod +x /home/user/Location/Of/Script
Lub, jeśli nie jesteś właścicielem tego skryptu:
sudo chmod +x /home/user/Location/Of/Script
Komentarze
- Aby cron mógł uruchomić skrypt, musi on być wykonywalny, ale nie może być wykonywany ręcznie jako root ' czy ta flaga jest potrzebna, prawda?
- Zależy od tego, jak ręcznie uruchamiasz skrypt. Jeśli uruchomisz skrypt za pomocą
./Scipt
lub/home/user/Location/Of/Script
, ' nie jest w porządku. Generalnie każdy skrypt musi być wykonywalny. Zobacz Jak uruchomić skrypt powłoki w Linuksie . - To ma sens, ale naprawdę uruchamiałem ten skrypt ręcznie ./script sposób bez napotkania problemów z uprawnieniami, dopóki nie spróbowałem go cronować. Dziękuję za pomoc.
/home/user/Location/Of/Script
? Na przykład.la -l /home/user/Location/Of/Script
. Nawiasem mówiąc, potrzebujesz zainstalowanego MTA do normalnego użytku wewnętrznego, nawet jeśli nie wysyłasz / nie odbierasz wiadomości e-mail na zewnątrz. ' Zdziwiłem się, że Twój system nie ma go już zainstalowanego.