zaLinux.ru

Почему не запускается скрипт, ошибка «bash: ./….sh: Отказано в доступе» (РЕШЕНО)


Иногда при запуске .sh файла, который представляет собой Bash скрипт, может возникнуть ошибка. К примеру, запускается скрипт в файле check-aur.sh:

./check-aur.sh

Получен ошибка:

bash: ./check-aur.sh: Отказано в доступе

Подобную ошибку можно исправить, если перед запускаемым скриптом указать желаемый интерпретатор, то есть bash:

bash ./check-aur.sh

Почему возникает ошибка «bash: ./….sh: Отказано в доступе»

Вы могли заметить, что некоторые файлы можно запустить и без указания bash в начале команды. Для этого необходимо соблюдение двух условий:

  • в разрешения файла должно быть разрешение на выполнение
  • в самом файле вверху должен быть шебанг

Проверить, есть ли разрешения на исполнение файла можно командой ls:


ls -l /путь/до/файла.sh

Должно быть что-то вроде такого (должны быть x):

-rwxr-xr-x 1 root root 415 Apr 26  2018 /root/bin/vpn_route.sh

Чтобы установить права на выполнение файла выполните команду вида:

chmod +x /путь/до/файла.sh

Смотрите также статью «Команда chmod: как поменять права доступа к файлам и директориям».

Ещё одна возможная причина, в начале файла *.sh пропущен шебанг:

#!/bin/sh

Строка шебанга имеет следующий формат:

#!interpreter [optional-arg]

interpreter должен быть абсолютным путём к исполняемому файлу программы (если интерпретатором является скрипт, он тоже должен начинаться с шебанга). Необязательный optional-arg должен иметь формат единственного аргумента (по причинам переносимости он не должен содержать пробелы). Пробел после #! является опциональным.


Рекомендуемые статьи:

2 Комментарии

  1. влад

    Здравствуйте! Получаю это сообщение даже если есть строка с шебанг.

    1. Alexey (Автор записи)

      Возможно, у вас что-то в этом духе.

      Там человек вводил в терминал

      /etc/NetworkManager/NetworkManager.conf

      и получал ошибку, что доступ запрещён.

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

Добавить комментарий для Alexey Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *