Odmowa dostępu podczas uruchamiania skryptów .sh

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

program exited with code: 126. Ten problem występuje zawsze, gdy próbuję wykonać kod. Jakie może być rozwiązanie?

wkhwilo
źródło
1
Permission deniedbłąd występuje tylko wtedy, gdy nie masz wystarczających uprawnień, aby uzyskać dostęp do tego pliku.
Avinash Raj
Jak mogę zmienić uprawnienia
wkhwilo
Gdzie mam to zrobić, proszę dać mi przykład
wkhwilo
Kiedy to robię, mówi mi to: chmod: nie może uzyskać dostępu do `geany_run_script.sh ': nie ma takiego pliku ani katalogu. Czy powinienem uruchomić go z terminala czy co?
wkhwilo
możliwy duplikat Jak uruchomić pliki .sh w terminalu?
Eliah Kagan,

Odpowiedzi:

117

Oto link, który wyjaśnia zmianę uprawnień do plików (i własności)

Jeśli chcesz je pominąć (oczywiście na razie), możesz utworzyć katalog / folder w katalogu osobistym użytkownika i tam pracować nad Cprogramami (lub innymi).


Możesz otworzyć terminal (naciśnij Ctrl+ Alt+ T) i cddo katalogu docelowego:

cd /path/to/target

Aby nadać plikowi „nazwa_pliku”, wykonaj uprawnienie (jeśli system plików pozwala na to z uprawnieniami RW):

chmod +x the_file_name
precyzyjny
źródło
Jak mogę zmienić uprawnienia dowolne przykłady
wkhwilo
Problem, jak to zrobić? Jestem nowym użytkownikiem Ubuntu, który niedawno przełączyłem z systemu Windows.
wkhwilo
.. jaki jest twój katalog roboczy tj. jaka jest lokalizacja pliku kodu źródłowego? .. czy masz jakieś doświadczenie z Windows CLI?
dokładnie
@ wkhwilo-012, sprawdź, czy to pomoże i nie wahaj się prosić o więcej ...
dokładnie
@ wkhwilo-012, skopiuj plik wykonywalny Area_circumferencei wklej go (ścieżka pliku zostanie wklejona), aby zaktualizować treść pytania ...
dokładnie
20

Musisz tylko zezwolić na wykonanie. Obserwuj to:

    chmod +x filename.sh
    ./filename.sh

Kiedy tworzymy nowy plik skryptu, domyślnie ma on uprawnienia do odczytu i zapisu. Ale jeśli chcemy je wykonać, powinniśmy wyrazić zgodę na wykonanie, jak pokazano powyżej.

Jay Modi
źródło
2

Otwórz aplikację terminalową, naciskając CTRL+ ALT+ Tlub za pomocą odpowiedniego skrótu w środowisku graficznym (jak Terminallub xTerm).
W jednolitym oknie, które pojawia się na ekranie, zobaczysz migający znak, to terminal cursor: po prostu kliknij okno i napisz, aby wprowadzić tekst (zwykle polecenia) i naciśnij, ENTERaby potwierdzić wprowadzanie.
Przed kursorem zawsze wyświetlana jest twoja aktualna pozycja w systemie plików z root directory(„/”), a Twój dom (gdzie znajdują się twoje pliki osobiste) nazywa się „~”.
Aby zmienić katalog / folder użyj cd EXISTENTFOLDER(zamień EXISTENTFOLDER na nazwę folderu); jeśli czujesz się zagubiony, po prostu napisz, cdaby w mgnieniu oka wrócić do katalogu domowego!
Terazrozwiążmy twój problem :

  1. Użyj cdpolecenia, aby znaleźć katalog z kodem źródłowym. Użyj, TABaby ci pomóc. Jeśli wykonasz ls -lh, zobaczysz listę możliwych ścieżek do przejścia i plików do wykonania.

  2. Po znalezieniu zablokowanego pliku uruchom chmod +x FILENAME(zastąp FILENAME nazwą pliku kodu źródłowego).

  3. Jeśli masz wiele zablokowanych plików, uruchom je, chmod +x *aby odblokować wszystkie pliki w bieżącym katalogu. Nigdy nie chmod + x niebezpiecznych lub niepewnych plików .

  4. Wykonaj, ./FILENAME YOUREVENTUALARGUMENTSaby wykonać plik wykonywalny.

  5. Pamiętaj, że jeśli skompilowany program próbuje odczytywać / zapisywać poza katalogiem domowym, musisz go wykonać tak, jak rootprzy użyciu sudo ./FILENAME YOUREVENTUALARGUMENTS.

Jeśli chcesz mieć instrukcję do wykonania polecenia man COMMAND(zamień COMMAND na dokładną nazwę polecenia, Linux rozróżnia małe i duże litery).

Niektóre muszle mają Open terminal herepolecenie upraszczające życie, szukaj ich w przyszłości i pamiętaj, że powłoka poleceń może być twoim najlepszym przyjacielem, jeśli dobrze ją wykorzystasz. :-RE

To wszystko. Jeśli potrzebujesz dodatkowej pomocy, skomentuj tutaj.
Jeśli pomagam, naciśnij strzałkę W GÓRĘ po lewej; jeśli rozwiążesz, zaznacz tę odpowiedź jako najlepszą odpowiedź.

Życzymy przyjemnych wrażeń w systemach Linux i Ubuntu.

Lorenzo Ancora
źródło
Wielkie dzięki. Teraz mogę pracować w katalogu domowym. Operacja, o którą prosiłeś wcześniej, nie może być dozwolona. Mówi, że nie mam pozwolenia, ale i tak dziękuję za sugestię.
wkhwilo