Вы запускаете свой скрипт, а терминал в ответ — permission denied. Команда вроде правильная, файл на месте, но ничего не происходит. Знакомо? Это не ошибка в коде — это про права доступа.
В Unix у каждого файла есть набор правил: кому можно его читать, кому — менять, а кому — запускать. Звучит сложно, но на деле всё держится на трёх буквах и одной команде. Давайте разложим по полочкам.
Три права: r, w, x
У файла есть три типа доступа, и каждый обозначается буквой:
- r (read) — можно читать содержимое: открыть, посмотреть, скопировать.
- w (write) — можно менять: редактировать или удалить.
- x (execute) — можно запускать как программу.
Посмотреть текущие права просто — добавьте флаг -l к ls:
ls -l
В начале каждой строки вы увидите что-то вроде -rw-r--r--. Это и есть права: какие буквы стоят — то и разрешено, а прочерк - означает «нельзя».
Откуда берётся «permission denied»
Чаще всего причина одна: вы пытаетесь запустить файл, у которого нет права x. Текстовый редактор создаёт файл как обычный документ — читать и менять можно, а запускать нельзя. Терминал честно об этом и говорит.
Реже бывает наоборот: нет права r, и файл даже не получается прочитать. Логика та же — система просто не даёт сделать то, на что нет разрешения.
chmod +x — разрешить запуск
Чинит это команда chmod (от change mode). Самый частый случай — сделать файл исполняемым:
chmod +x script.sh
+x означает «добавить право на выполнение». После этого файл можно запускать, и permission denied исчезнет. Точно так же +r добавляет чтение, а если написать -x (с минусом) — право, наоборот, убирается.
Совет
Не спешите раздавать права всему подряд. chmod меняет, кто и что может делать с файлом, поэтому ставьте +x только тем файлам, которые действительно должны запускаться, — вашим скриптам. Полный разбор синтаксиса и режимов — на странице команды chmod.
А запоминать обязательно?
Нет. Если вы работаете с Claude Code, можно просто сказать словами: «мой скрипт не запускается, пишет permission denied». Claude прочитает ситуацию, поймёт, что не хватает права на выполнение, и предложит выполнить chmod +x. Но понимать, что именно происходит, всё равно полезно: тогда сообщение об ошибке перестаёт пугать и превращается в понятную подсказку.
Права доступа — одна из тех вещей, что выглядят страшно ровно до первого раза, когда вы их починили сами. Теперь permission denied для вас не тупик, а просто «не хватает буквы x».