Дозвіл відхилено під час запуску .sh-скриптів


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

program exited with code: 126. Ця проблема завжди виникає, коли я намагаюся виконати свій код. Яке може бути рішення?


1
Permission deniedпомилка виникає лише в тому випадку, якщо у вас недостатньо привілеїв для доступу до цього файлу.
Авінаш Радж

Як я можу змінити дозволи
wkhwilo

Де це робити, будь ласка, наведіть мені приклад
wkhwilo

Коли я це роблю, він говорить мені про це chmod: не може отримати доступ до `geany_run_script.sh ': такого файлу чи каталогу немає. Чи слід запускати його з терміналу чи що?
wkhwilo

Відповіді:


117

Ось посилання, що пояснює зміну дозволу на файли (та права власності)

Якщо ви хочете пропустити ці (поки що, звичайно), ви можете створити каталог / папку у своєму домашньому каталозі користувача та працювати там над своїми 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.