← Все вопросы

Как дать права на выполнение файла в Linux через chmod?

Задан 4 месяца назад826 просмотров2 ответа
9

Написал скрипт deploy.sh, запускаю его и получаю «Permission denied». Погуглил — говорят, нужно дать права на выполнение через chmod. Как это сделать и что значат эти цифры 755?

2 ответа

11
✓ Принятый ответ — помог автору

Ошибка «Permission denied» при запуске скрипта обычно значит, что у файла нет права на выполнение. Его даёт команда chmod.

Самый простой способ — добавить право на выполнение:

chmod +x deploy.sh

+x = «добавить право execute (запуск)». После этого скрипт запустится:

./deploy.sh

(./ перед именем обязательно — говорит «запусти файл из текущей папки»).

Про цифры (755, 644). Права делятся на три группы: владелец / группа / остальные. Каждая цифра — сумма: read=4, write=2, execute=1.

  • chmod 755 deploy.sh → владелец: 7 (4+2+1, читать+писать+запускать), группа и остальные: 5 (4+1, читать+запускать). Типично для скриптов и программ.
  • chmod 644 file.txt → владелец читает и пишет (6), остальные только читают (4). Типично для обычных файлов.

Посмотреть текущие права: ls -l deploy.sh — увидишь что-то вроде -rwxr-xr-x, где r=read, w=write, x=execute.

Частая ошибка: дать права, но запускать скрипт без ./ — просто deploy.sh. Тогда bash не найдёт его в системных путях и скажет «command not found». Для файла из текущей папки нужен префикс ./. И не давай скриптам chmod 777 «на всякий случай» — это означает «полные права всем», что небезопасно.

4

Шпаргалка по chmod:

  • chmod +x файл — добавить запуск (самое частое).
  • chmod -x файл — убрать запуск.
  • chmod 755 файл — стандарт для скриптов/программ.
  • chmod 644 файл — стандарт для обычных файлов.

Логика цифр: 4=чтение, 2=запись, 1=запуск, складываешь нужное. 7=всё (4+2+1), 6=чтение+запись, 5=чтение+запуск. Три цифры = права для владельца, группы и всех остальных.

Ваш ответ

Войдите, чтобы ответить на вопрос.