Verzeichnis-Schreibberechtigungen

Verzeichnis-Schreibberechtigungen

Nehmen wir an, ich habe in meinem ~ ein Verzeichnis (temp genannt) erstellt und darin einige Dateien erstellt. Meine Umask ist jetzt 0002, aber aus Übungsgründen habe ich die Berechtigungen für ~/temp/ geändert:

chmod 222 temp

Soweit ich weiß, würde das Schreiben von Rechten für ein Verzeichnis bedeuten, dass ich es nicht öffnen oder seinen Inhalt lesen kann, aber ich sollte in der Lage sein, eine Datei hinzuzufügen (oder zu entfernen). Ich dachte zum Beispiel, dass dies problemlos funktionieren würde:

touch temp/new_file.txt

Wenn ich dies jedoch versuche, wird nur ein Fehler ausgegeben:

touch: cannot touch 'temp/new_file.txt': Permission denied

Ich konnte nicht herausfinden, warum es nicht wie erwartet funktioniert und frage mich daher, was ich mit dem Verzeichnis machen KANN, wenn ich nur Schreibberechtigung habe, und warum das Erstellen einer neuen Datei auf die von mir versuchte Art nicht funktioniert?

(Alle oben genannten Befehle wurden in ~ ausgeführt)

Jede Hilfe ist willkommen!

Antwort1

Berechtigungen funktionieren anders für Verzeichnisse,

Dies ist keine perfekte Erklärung, aber

Laut der Manualpage von chmod ( man chmod):

Die Buchstaben rwxXst wählen Dateimodusbits für die betroffenen Benutzer aus: lesen (r), schreiben (w),ausführen (oder nach Verzeichnissen suchen) (x), nur ausführen/suchen, wenn die Datei ein Verzeichnis ist oder bereits Ausführungsberechtigung für einen Benutzer hat (X), Benutzer- oder Gruppen-ID bei Ausführung setzen (s), eingeschränktes Löschflag oder Sticky Bit (t). Statt eines oder mehrerer dieser Buchstaben können Sie genau einen der Buchstaben ugo angeben: die Berechtigungen, die dem Benutzer erteilt wurden, dem die Datei gehört (u), die Berechtigungen, die anderen Benutzern erteilt wurden, die Mitglieder der Gruppe der Datei sind (g), und die Berechtigungen, die Benutzern erteilt wurden, die in keine der beiden vorhergehenden Kategorien fallen (o).

Das bedeutet, dass Sie zum Schreiben in eine Datei in einem Verzeichnis zunächstin das Verzeichnis wechseln (Ausführungsberechtigung)und erstelle eine Datei (Schreibberechtigung)

verwandte Informationen