Ошибка permission denied при запуске bash скрипта возникает, когда файл не имеет прав на исполнение. Исправьте это командой chmod +x script.sh, а затем запустите скрипт через ./script.sh.
Причины проблемы
- Файл скрипта создан без прав на исполнение (по умолчанию устанавливаются права только на чтение и запись)
- Неправильные права доступа, установленные администратором или предыдущим пользователем
- Скрипт находится на файловой системе, которая не поддерживает права доступа (например, NTFS в Windows)
- Попытка запустить скрипт от пользователя, который не является владельцем файла и не входит в группу с нужными правами
- Скрипт скопирован с внешнего источника и потерял права при копировании
Пошаговая инструкция
- Откройте терминал и перейдите в директорию, где находится ваш bash скрипт, командой
cd /path/to/script - Выполните команду
chmod +x script.sh, гдеscript.sh— имя вашего файла - Проверьте права доступа командой
ls -l script.sh(должно появиться-rwxr-xr-x) - Запустите скрипт командой
./script.sh - Если ошибка повторяется, проверьте владельца файла командой
ls -lи измените владельца черезchown username:groupname script.sh - Если скрипт находится на внешнем накопителе, перенесите его на внутренний диск и повторите шаги 2–4
Часто задаваемые вопросы
Что означает ошибка "permission denied"? Это значит, что операционная система запретила запуск файла, потому что у текущего пользователя нет прав на его исполнение.
Почему chmod +x не сработал? Файловая система может быть смонтирована с опцией noexec; переместите скрипт в другую директорию или используйте bash script.sh вместо ./script.sh.
Нужны ли мне права администратора для исправления? Нет, если вы владелец файла; для чужих файлов потребуется sudo или помощь администратора.