Отказано в доступе при запуске скриптов .sh

71
./geany_run_script.sh: 5: ./geany_run_script.sh: ./Area_circumference: Permission denied

program exited with code: 126, Эта проблема всегда возникает, когда я пытаюсь выполнить свой код. Какое может быть решение?

wkhwilo
источник
1
Permission deniedОшибка возникает, только если у вас недостаточно прав для доступа к этому файлу.
Авинаш Радж
Как я могу изменить разрешения
wkhwilo
Где я могу это сделать, пожалуйста, дайте мне пример
снимка
Когда я делаю это, он говорит мне, что chmod: не может получить доступ к `geany_run_script.sh ': нет такого файла или каталога. Должен ли я запустить его из терминала или как?
wkhwilo
Возможный дубликат Как мне запустить .sh файлы в Терминале?
Элия ​​Каган

Ответы:

118

Вот ссылка, которая объясняет об изменении разрешения файла (и владельца)

Если вы хотите пропустить их (пока, конечно), вы можете создать каталог / папку в вашем домашнем каталоге пользователя и работать там над своими Cпрограммами (или другими).


Вы можете открыть терминал (нажмите Ctrl+ Alt+ T) и cdв целевой каталог:

cd /path/to/target

Чтобы дать файлу «the_file_name» разрешение на выполнение (если файловая система позволяет вам с правами RW):

chmod +x the_file_name
точный
источник
Как я могу изменить разрешения любых примеров
wkhwilo
Проблема в том, как я могу это сделать? Я новый пользователь Ubuntu, которого я недавно переключил с Windows.
wkhwilo
.. каков твой рабочий каталог т.е. где находится ваш файл исходного кода? ..У вас есть опыт работы с Windows CLI?
точное
@ wkhwilo-012, посмотрите, поможет ли это, и, пожалуйста, не стесняйтесь спрашивать больше ..
точный
@ wkhwilo-012, пожалуйста, скопируйте исполняемый файл Area_circumferenceи вставьте его (путь к файлу будет вставлен), чтобы обновить тело вашего вопроса ...
точно
20

Вам нужно дать только разрешение на выполнение. Следовать этому:

    chmod +x filename.sh
    ./filename.sh

Когда мы создаем новый файл скрипта, он по умолчанию имеет права на чтение и запись. Но если мы хотим выполнить их, мы должны дать разрешение на выполнение, как показано выше.

Джей Моди
источник
2

Откройте приложение терминала, нажав CTRL+ ALT+ Tили с помощью соответствующей комбинации клавиш в графической среде (например, Terminalили xTerm).
В стандартном окне, которое появляется на экране, вы увидите мигающий символ, это terminal cursor: просто нажмите на окно и напишите, чтобы ввести текст (обычно команды), и нажмите, ENTERчтобы подтвердить ввод.
Перед курсором всегда указывается ваша текущая позиция в файловой системе из root directory("/"), а ваш дом (где находятся ваши личные файлы) называется "~".
Для изменения каталога / папки используйте cd EXISTENTFOLDER(замените EXISTENTFOLDER на имя папки); если вы чувствуете себя потерянным, просто напишите, cdчтобы в мгновение ока вернуться в свой домашний каталог!
В настоящее времядавайте решим вашу проблему :

  1. Используйте cdкоманду, чтобы найти каталог с вашим исходным кодом. Используйте, TABчтобы помочь вам. Если вы выполните ls -lh, вы увидите список возможных путей и файлов для выполнения.

  2. Когда вы найдете заблокированный файл, выполните команду chmod +x FILENAME(замените FILENAME на имя файла исходного кода).

  3. Если у вас есть несколько заблокированных файлов, выполните chmod +x *команду, чтобы разблокировать все файлы в текущем каталоге. Никогда не используйте chmod + x опасные или незащищенные файлы .

  4. Выполнить, ./FILENAME YOUREVENTUALARGUMENTSчтобы выполнить ваш исполняемый файл.

  5. Помните, что если ваша скомпилированная программа пытается читать / записывать вне вашего домашнего каталога, вам нужно будет выполнить ее как rootс помощью sudo ./FILENAME YOUREVENTUALARGUMENTS.

Если вы хотите иметь руководство для выполнения команды man COMMAND(замените COMMAND на точное имя команды, Linux чувствителен к регистру).

В некоторых оболочках есть Open terminal hereкоманда, упрощающая вашу жизнь, ищите ее в будущем и помните, что командная оболочка может стать вашим лучшим другом, если вы ее хорошо используете. :-D

Это все. Если вам нужна дополнительная помощь, прокомментируйте здесь.
Если я помогаю вам, нажмите стрелку вверх слева; если вы решили пометить этот ответ как лучший ответ.

Приятного общения с Linux и Ubuntu.

Лоренцо Анкора
источник
Большое спасибо. Теперь я могу работать в домашнем каталоге. Операция, которую вы спрашивали ранее, не может быть разрешена. Там написано, что у меня нет разрешения, но все равно спасибо за предложение.
wkhwilo