Permission denied в Linux, как исправить ошибку доступа

Ошибка Permission denied в Linux это одна из самых распространённых проблем для начинающих и опытных пользователей. Она возникает, когда у пользователя нет прав на выполнение команды, доступ к файлу или папке. В этой статье разберём пошаговое решение, альтернативные способы исправления и частые ошибки, чтобы вы навсегда забыли о проблеме с правами доступа.

Как исправить Permission denied в Linux- пошаговое руководство
Как исправить Permission denied в Linux- пошаговое руководство

Краткий ответ

Если появляется ошибка Permission denied, выполните следующие действия:

ls -l filename # проверка прав доступа

chmod +x filename # дать права на выполнение

sudo chown user:user filename # смена владельца sudo <команда> # запуск с правами суперпользователя

В большинстве случаев этого достаточно для устранения ошибки. Если проблема не решилась, тогда читайте инструкцию ниже.

Почему возникает Permission denied

  • Нет прав на выполнение файла или скрипта это значит, что файл может существовать, но без права на запуск.
  • Нет прав на запись или чтение – например, вы пытаетесь изменить системный файл без sudo.
  • Файл принадлежит другому пользователю – даже root не всегда может записывать, если используется SELinux или ограниченный mount.
  • Запуск без sudo – некоторые команды требуют суперпользователя.
  • SELinux или AppArmor ограничения – в CentOS/RHEL или Ubuntu могут блокировать действия даже для владельца.
  • Ошибки с путями и скриптами – неправильные shebang, CRLF в скриптах из Windows, noexec в монтированных томах.

Пошаговое решение

1. Проверяем права доступа

ls -l file.sh

Вывод покажет права и владельца:

-rw-r--r-- 1 user user 1024 Feb 21 14:33 file.sh

Здесь:

  • rw- — права владельца (чтение и запись)
  • r– — права группы (только чтение)
  • r– — права остальных (только чтение)

2. Добавляем право на выполнение

chmod +x file.sh

+x — разрешает выполнение скрипта.
Проверяем:

ls -l file.sh

Теперь должно быть -rwxr--r--.

3. Смена владельца (если файл принадлежит другому пользователю)

sudo chown username:username file.sh

username – ваш пользователь в системе.
Это важно для работы с файлами в общем доступе или после копирования из другого аккаунта.

4. Запуск с правами суперпользователя

sudo nano /etc/hosts sudo apt update

⚠️ Помните: sudo нужно использовать только для системных изменений.

5. Проверка SELinux / AppArmor (CentOS, RHEL, Ubuntu)

getenforce

Enforcing – SELinux активен, может блокировать доступ.
Временно можно переключить:

sudo setenforce 0

Но лучше правильно настроить контекст.

6. Проверка монтированных томов

Если ошибка при работе с флешкой или внешним диском:

mount | grep /mnt/usb

Опция noexec запрещает выполнение файлов.
Монтируйте с exec или копируйте файлы на локальный диск.

Альтернативные способы решения

  • Использовать графический файловый менеджер с sudo (например, sudo nautilus).
  • Переписать скрипт в домашней директории.
  • Проверить и исправить CRLF, если скрипт скопирован из Windows:dos2unix file.sh

Частые ошибки

Ошибка Почему плохо
chmod 777 file Дает всем полные права – угроза безопасности
Работа без понимания root Можно сломать систему
Изменение системных папок Может нарушить работу OS
Игнорирование SELinux/AppArmor Файлы будут блокироваться даже с chmod

FAQ

Q1. Почему chmod не помогает?

Возможно, файл на смонтированном томе с опцией noexec или принадлежит другому пользователю.

Q2. Почему sudo не решает проблему?

Если SELinux активен или mount noexec, права sudo не помогут.

Q3. Можно ли отключить права?

Нет, это нарушает безопасность. Лучше исправлять права и владельца корректно.

Q4. Почему ошибка на USB или внешнем диске?

Чаще всего noexec или файловая система NTFS/FAT32 без поддержки Unix-пермиссий.

Q5. Как безопасно дать права на выполнение?

Используйте chmod +x только на нужных файлах, не на системных папках.

Заключение

И в заключении хочу сказать, что ошибка Permission denied почти всегда связана с правами доступа или владельцем файла. Пошаговые решения: проверить права (ls -l), добавить выполнение (chmod +x), сменить владельца (chown), использовать sudo и учитывать SELinux/опции монтирования.

С правильными командами и подходом вы сможете быстро решать ошибки доступа в Linux, не нарушая безопасность системы.

Полезные ссылки

Понравилась статья?

Помогите Setiwik.ru создавать больше глубоких обзоров и новостей. Один клик и ваш вклад помогает держать серверы включёнными и авторов мотивированными!

Спасибо, что вы с нами!

Nazario

Я Назар. Уже больше десяти лет я работаю с Linux и Windows системами каждый день. Это моя основная профессия и большая часть жизни.
Всё, что ты читаешь на Setiwik.ru, начинается с официальной документации, мануалов и технических спецификаций. Я их изучаю очень внимательно. Но ценность статей появляется именно тогда, когда я беру эту базу и пропускаю через десятки реальных ситуаций: ночные аварии, странные баги, которые не гуглятся с первого раза, выстраданные конфиги и проверенные обходные пути.
Я не обещаю истину в последней инстанции. Но если мой опыт поможет тебе сэкономить хотя бы пару часов нервов и перезагрузок, значит всё это было не зря. Здесь только практика: от тонкой настройки серверов до самых неожиданных ситуаций, которые официальные руководства обычно обходят стороной.
Setiwik.ru это место, где IT становится понятнее и спокойнее. Заходи почаще. Будем разбираться вместе.

А ещё с этого года я официально помогаю малому бизнесу Новороссийска не тратить время и деньги на постоянные IT-проблемы.
Под брендом Novoross-IT предлагаю абонентское обслуживание компьютеров: профилактика, резервные копии, настройка сетей, быстрое решение любых сбоев и ежемесячные отчёты.

Сейчас я могу приехать к тебе в офис на бесплатный аудит и показать реальное состояние твоей техники и сетей. Часто после такого аудита владельцы удивляются, сколько мелких рисков они уже носили в себе.

Подробности здесь: novoross-it.ru

Практические инструкции по Windows и Linux
Добавить комментарий