Назад | Перейти на главную страницу

Linux разрешения на выполнение

-rw-r--r--. 1 myusername developers 169 May 17 09:01 build.sh

Почему я могу выполнить сценарий build.sh из командной строки, если у него нет прав на выполнение, но когда crontab пытается его выполнить, он терпит неудачу?

Вы не можете выполнить это из командной строки, потому что у него нет прав на выполнение.

Что вы можете сделать, так это загрузить его из командной строки,

. ./build.sh

что заставляет текущую оболочку выполнять команды в файле, как если бы они вводились в командной строке.

Вы не можете сделать это из cron, поэтому вам нужно дать скрипту разрешения на выполнение (chmod 744 build.sh).

Вы также можете «запускать» сценарии, запустив оболочку и передав ей сценарий, например,

sh build.sh

Это потому, что вы выполняете sh (который имеет разрешение + x), и он читает файл build.sh и выполнение команд, как если бы они были введены в командной строке, перед выходом.