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

Канонический URL: https://zero2claude.ru/blog/chmod-permissions
Дата: 2026-07-15
Теги: терминал, команды

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

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

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

<Cover src="/blog/chmod-permissions.jpg" alt="права доступа к файлам в терминале и команда chmod" />

## Три права: r, w, x

У файла есть три типа доступа, и каждый обозначается буквой:

- **r** (read) — можно **читать** содержимое: открыть, посмотреть, скопировать.
- **w** (write) — можно **менять**: редактировать или удалить.
- **x** (execute) — можно **запускать** как программу.

Посмотреть текущие права просто — добавьте флаг `-l` к `ls`:

```bash
ls -l
```

В начале каждой строки вы увидите что-то вроде `-rw-r--r--`. Это и есть права: какие буквы стоят — то и разрешено, а прочерк `-` означает «нельзя».

## Откуда берётся «permission denied»

Чаще всего причина одна: вы пытаетесь **запустить** файл, у которого нет права `x`. Текстовый редактор создаёт файл как обычный документ — читать и менять можно, а запускать нельзя. Терминал честно об этом и говорит.

Реже бывает наоборот: нет права `r`, и файл даже не получается прочитать. Логика та же — система просто не даёт сделать то, на что нет разрешения.

## chmod +x — разрешить запуск

Чинит это команда `chmod` (от *change mode*). Самый частый случай — сделать файл исполняемым:

```bash
chmod +x script.sh
```

`+x` означает «добавить право на выполнение». После этого файл можно запускать, и `permission denied` исчезнет. Точно так же `+r` добавляет чтение, а если написать `-x` (с минусом) — право, наоборот, убирается.

<Callout type="tip">
Не спешите раздавать права всему подряд. `chmod` меняет, кто и что может делать с файлом, поэтому ставьте `+x` только тем файлам, которые действительно должны запускаться, — вашим скриптам. Полный разбор синтаксиса и режимов — на странице [команды chmod](/commands/chmod).
</Callout>

## А запоминать обязательно?

Нет. Если вы работаете с Claude Code, можно просто сказать словами: «мой скрипт не запускается, пишет permission denied». Claude прочитает ситуацию, поймёт, что не хватает права на выполнение, и предложит выполнить `chmod +x`. Но понимать, что именно происходит, всё равно полезно: тогда сообщение об ошибке перестаёт пугать и превращается в понятную подсказку.

Права доступа — одна из тех вещей, что выглядят страшно ровно до первого раза, когда вы их починили сами. Теперь `permission denied` для вас не тупик, а просто «не хватает буквы x».

 [Освоить терминал с нуля](/learn)
