К содержимому
Claude Code с 0:полный курс
ТерминалАвтор: Михаил Кузьмицкий

chmod и «permission denied»: права доступа без боли

Коротко

Терминал отвечает «permission denied», и непонятно, что вы сделали не так. Разберёмся, что такое права доступа и как их чинит chmod.

Вы запускаете свой скрипт, а терминал в ответ — permission denied. Команда вроде правильная, файл на месте, но ничего не происходит. Знакомо? Это не ошибка в коде — это про права доступа.

В Unix у каждого файла есть набор правил: кому можно его читать, кому — менять, а кому — запускать. Звучит сложно, но на деле всё держится на трёх буквах и одной команде. Давайте разложим по полочкам.

права доступа к файлам в терминале и команда chmod

Три права: 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».

Освоить терминал с нуля

Читайте также

Попробуй на практике

Бесплатные интерактивные курсы по теме — прямо в браузере, с нуля.