Warum sind zum Erstellen einer Datei in C (Linux) neben Schreibberechtigungen auch Ausführungsberechtigungen erforderlich?

Warum sind zum Erstellen einer Datei in C (Linux) neben Schreibberechtigungen auch Ausführungsberechtigungen erforderlich?

Ich versuche, aus meinem C-Quellcode unter Linux eine Datei zu erstellen. Ich verwende den ddBefehl zum Lesen aus einer Datei und zum Schreiben in eine Datei, indem ich sie erstelle. Wenn ich keine Ausführungsberechtigung (ich habe Schreibberechtigung) für das Zielverzeichnis (in dem die Datei erstellt werden soll) habe, kann die Datei nicht erstellt werden. Wenn ich sowohl Schreib- als auch Ausführungsberechtigung habe, kann die Datei erstellt werden.

Was ist der Grund dafür?

Antwort1

Wenn die Modusattribute r, w und x festgelegt sind, haben sie die folgende Auswirkung auf Dateien und Verzeichnisse:

  • r-Attribut (Leseberechtigung):

Dateien:Ermöglicht dasgeöffnetUndlesen.

Verzeichnisse:Ermöglicht das Auflisten des Inhalts eines Verzeichnisses. Um Informationen über die enthaltenen Dateien oder Verzeichnisse abzurufen,Das Execute-Attribut muss ebenfalls festgelegt werden.

  • w Attribut (Schreibberechtigung):

Dateien:Ermöglicht das Schreiben oder Kürzen einer Datei. Dieses Attributerlaubt nicht das Umbenennen oder Löschen von Dateien. Die Möglichkeit, Dateien zu löschen oder umzubenennen, wird bestimmtnach Verzeichnisattributen.

Verzeichnisse:Ermöglicht das Erstellen, Löschen und Umbenennen von Dateien in einem Verzeichniswenn das Execute-Attribut ebenfalls gesetzt ist.

  • x Attribut (Ausführungsberechtigung):

Dateien:Ermöglicht, eine Datei als Programm zu behandeln und auszuführen. In Skriptsprachen geschriebene Programmdateienmuss auch als lesbar gesetzt werden, um ausgeführt zu werden.

Verzeichnisse:Ermöglicht dastrat ein, zB CD-Verzeichnis.

Referenz: Die Linux®-Befehlszeile William E. Shotts, Jr.

Ich würde empfehlen, dieses Buch oder die PDF-Version zu lesen, die Sie unter diesem Link herunterladen können:http://sourceforge.net/projects/linuxcommand/files/TLCL/13.07/TLCL-13.07.pdf/download

Antwort2

Das Ausführungsbit auf einem Verzeichnis gibt dir die Möglichkeit, es zu betreten/durchqueren. Daher ist es auch in deinem Fall Voraussetzung, eine Datei anzulegen (sonst kannst du es betreten).

verwandte Informationen