Berechtigung verweigert, wenn SH-Skripte ausgeführt werden


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

program exited with code: 126. Dieses Problem tritt immer auf, wenn ich versuche, meinen Code auszuführen. Was könnte die Lösung sein?


1
Permission deniedFehler treten nur auf, wenn Sie nicht über die erforderlichen Berechtigungen verfügen, um auf diese Datei zuzugreifen.
Avinash Raj

Wie kann ich die Berechtigungen ändern
wkhwilo

Wo mache ich das bitte geben Sie mir ein Beispiel Schuss
wkhwilo

Wenn ich das tue, sagt es mir, dass chmod: nicht auf `geany_run_script.sh 'zugreifen kann: Keine solche Datei oder kein solches Verzeichnis. Soll ich es vom Terminal aus ausführen oder was?
wkhwilo

Antworten:


118

Hier ist ein Link, der erklärt, wie man Dateiberechtigungen (und Eigentumsrechte) ändert.

Wenn Sie diese (vorerst natürlich) überspringen möchten, können Sie ein Verzeichnis / einen Ordner in Ihrem Benutzerverzeichnis erstellen und dort an Ihren CProgrammen (oder anderen) arbeiten.


Sie können das Terminal öffnen (drücken Sie Ctrl+ Alt+ T) und cdin das Zielverzeichnis:

cd /path/to/target

Um der Datei "the_file_name" die Berechtigung zum Ausführen zu geben (sofern das Dateisystem dies mit den RW-Rechten erlaubt):

chmod +x the_file_name

Wie kann ich die Berechtigungen eines Beispiels ändern
wkhwilo

Das Problem, wie kann ich das tun? Ich bin ein neuer Ubuntu-Benutzer, den ich kürzlich von Windows aus gewechselt habe.
wkhwilo

..was ist dein Arbeitsverzeichnis dh. Wo befindet sich Ihre Quellcode-Datei? ..hat ihr schon erfahrungen mit windows cli?
genaue

@ wkhwilo-012, sehen, ob das hilft und bitte zögern Sie nicht, mehr zu fragen ..
präzise

@ wkhwilo-012, bitte kopieren Sie Ihre ausführbare Datei Area_circumferenceund fügen Sie sie ein (der Dateipfad wird eingefügt), um den Text Ihrer Frage zu aktualisieren ...
präzise

20

Sie müssen nur die Ausführungserlaubnis geben. Folge dies:

    chmod +x filename.sh
    ./filename.sh

Wenn wir eine neue Skriptdatei erstellen, hat diese standardmäßig Lese- und Schreibrechte. Wenn wir sie jedoch ausführen möchten, sollten wir die oben gezeigte Ausführungserlaubnis erteilen.


2

Öffnen Sie Ihre Terminal-Anwendung durch Drücken von CTRL+ ALT+ Toder mit der entsprechenden Verknüpfung auf der Grafikumgebung (wie Terminaloder xTerm).
In dem einheitlichen Fenster, das auf dem Bildschirm angezeigt wird, sehen Sie ein blinkendes Zeichen. terminal cursorKlicken Sie einfach auf das Fenster und schreiben Sie, um Text einzugeben (normalerweise Befehle). Drücken Sie ENTER, um die Eingabe zu bestätigen.
Vor dem Cursor steht immer Ihre aktuelle Position im Dateisystem von root directory("/") und Ihr Zuhause (wo sich Ihre persönlichen Dateien befinden) heißt "~".
Verwenden Sie zum Ändern des Verzeichnisses / Ordners cd EXISTENTFOLDER(ersetzen Sie EXISTENTFOLDER durch den Ordnernamen). Wenn Sie sich verloren fühlen, geben Sie einfach cdein, um blitzschnell zu Ihrem Home-Verzeichnis zurückzukehren!
JetztLassen Sie uns Ihr Problem lösen :

  1. Verwenden Sie den cdBefehl, um das Verzeichnis mit Ihrem Quellcode zu finden. Verwenden Sie TAB, um Ihnen zu helfen. Wenn Sie ausführen ls -lh, wird eine Liste der möglichen Pfade und der auszuführenden Dateien angezeigt.

  2. Wenn Sie die blockierte Datei gefunden haben, führen Sie sie aus chmod +x FILENAME(ersetzen Sie FILENAME durch den Namen Ihrer Quellcodedatei).

  3. Wenn Sie mehrere blockierte Dateien haben, führen Sie diese aus chmod +x *, um alle Dateien im aktuellen Verzeichnis zu entsperren. Niemals gefährliche oder unsichere Dateien chmod + x .

  4. Ausführen ./FILENAME YOUREVENTUALARGUMENTS, um die ausführbare Datei auszuführen.

  5. Denken Sie daran , dass , wenn Ihr übersetztes Programm zu lesen versucht / schreiben außerhalb Ihres Home - Verzeichnisses müssen Sie es auszuführen , wie rootdurch den Einsatz sudo ./FILENAME YOUREVENTUALARGUMENTS.

Wenn Sie ein Handbuch für einen Befehl ausführen lassen möchten man COMMAND(ersetzen Sie COMMAND durch den genauen Befehlsnamen, wobei Linux zwischen Groß- und Kleinschreibung unterscheidet).

Einige Shells haben den Open terminal hereBefehl, Ihr Leben zu vereinfachen, in Zukunft danach zu suchen und daran zu denken, dass die Befehls-Shell Ihr bester Freund sein kann, wenn Sie sie gut verwenden. :-D

Es ist alles Wenn Sie weitere Hilfe benötigen, klicken Sie hier.
Wenn ich Ihnen helfe, drücken Sie den Aufwärtspfeil links. Wenn Sie lösen, markieren Sie diese Antwort als beste Antwort.

Hab eine schöne Erfahrung mit Linux & Ubuntu.


Danke vielmals. Jetzt kann ich unter dem Home-Verzeichnis arbeiten. Die Operation, um die Sie mich zuvor gebeten haben, kann nicht zugelassen werden. Es heißt, ich habe keine Erlaubnis, aber trotzdem danke für den Vorschlag.
wkhwilo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.