Articles
Root Cron Won ' t Kør script (tilladelse nægtet)
On februar 15, 2021 by adminJeg har redigeret min root cron-fane til periodisk udfør et script i en bestemt brugers mappe ved hjælp af denne kommando:
sudo crontab -e
Når cron kører scriptet, er dette output:
sh: 1: /home/user/Location/Of/Script: Permission denied
Jeg troede, at rodkronen havde tilladelse til at gøre noget. Jeg har ikke noget problem, når jeg manuelt kører dette script som root.
Jeg har læst i dokumentationen , at yderligere fejlinfo kan findes her:
sudo cat /var/log/syslog
Her er hvad jeg fandt:
Jan 30 12:30:01 backup CRON[17702]: (CRON) info (No MTA installed, discarding output)
Imidlertid tror dette sandsynligvis ikke er relateret til problemet med tilladelse nægtet.
Så hvad skal jeg virkelig gøre?
Kommentarer
Svar
Jeg tror at dit script ikke kan køres. Så brug følgende kommando til at gøre det:
chmod +x /home/user/Location/Of/Script
Eller hvis du ikke er ejeren af dette script:
sudo chmod +x /home/user/Location/Of/Script
Kommentarer
- Så for cron at køre scriptet skal det være eksekverbart, men manuelt som root ikke ' behøver du ikke dette flag, ikke?
- Afhænger af hvordan du kører scriptet manuelt. Hvis du kører scriptet ved hjælp af
./Scipt
eller/home/user/Location/Of/Script
, er det ' ikke ok. Generelt skal ethvert script være eksekverbart. Se Sådan køres et shell-script i Linux . - Det giver mening, men jeg har virkelig kørt dette script manuelt ./script måde uden at støde på problemer med tilladelser, indtil jeg forsøgte at cron det. Tak for din hjælp.
/home/user/Location/Of/Script
? For eksempel.la -l /home/user/Location/Of/Script
. I øvrigt har du brug for en MTA installeret til normal intern brug, selvom du ikke sender / modtager e-mail eksternt. Jeg ' er overrasket over, at dit system ikke allerede har det installeret.