Entwicklertools · Chmod-Rechner
Was das Ausführungsbit in einem Verzeichnis bewirkt und warum 644 Ordner kaputt gehen
· Wie es funktioniert
chmod Unix Entwickler-Workflow
In einem Verzeichnis geht es bei x nicht darum, irgendetwas auszuführen; es gewährt das Recht zum Durchqueren. In diesem Beitrag werden die Aufteilung read/search, die dadurch erzeugten Sonderfälle und die Modi, die diese vermeiden, erläutert.
Die Berechtigung für eine Datei, die Sie lesen können, wurde verweigert – die Datei ist 644, das Verzeichnis ist 644 und cat schlägt immer noch fehl
Eine lesbare Datei kann unerreichbar bleiben, wenn in ihrem Verzeichnis die Ausführung für die entsprechende Klasse fehlt. Artikel 501 ruft die Verzeichnisausführungsdurchquerung auf, anstatt einen Ordner auszuführen. Die Verzeichniserklärung des Rechners ist expliziter: Durch Lesen werden Einträge aufgelistet, durch Schreiben können Eintragsänderungen zugelassen werden, und durch Ausführen wird das Betreten des Verzeichnisses und das Aufrufen der darin enthaltenen Dateien anhand des Namens ermöglicht. Der Modus 644 hat für keine Klasse ein Ausführungsbit.
Vergleichen Sie 644 mit 755, während das Ziel auf Verzeichnis festgelegt ist. Das erste gibt rw-r--r-- wieder; der zweite rendert rwxr-xr-x. Jede Klasse erhält die Ausführungsberechtigung, während in beiden Modi nur der Besitzer die Schreibberechtigung behält. Dieser Kontrast erklärt den dargestellten Berechtigungsunterschied. Die Seite untersucht die Datei nicht, identifiziert den Zugriffsprozess nicht und testet auch nicht, ob ein Vorgängerverzeichnis den tatsächlichen Pfad blockiert.
Listen lesen, Durchläufe ausführen – wie das Verzeichnis r Namen anzeigt, während Sie mit x Einträge nach Namen öffnen und angeben können
Verzeichnis lesen und ausführen sind separate Flags mit separaten Erklärungen. Lesen entspricht dem Auflisten von Einträgen. „Ausführen“ entspricht dem Aufrufen des Verzeichnisses und dem Erreichen benannter Dateien darin. Eine Klasse kann daher im numerischen Modell das eine ohne das andere haben. Die Matrix hält diese Unterscheidung sichtbar, indem sie innerhalb jeder Klassenziffer den Lesevorgang mit der Gewichtung 4 und die Ausführung mit der Gewichtung 1 platziert.
Das Ändern einer Ziffer einer anderen Klasse von 4 in 5 ist eine gezielte Demonstration. Das symbolische Tripel bewegt sich von r-- zu r-x, und die Verzeichniserklärung fügt eine namensbasierte Erreichbarkeit hinzu, während die Auflistung beibehalten wird. Dies ist eine Konvertierungstatsache, kein Live-Zugriffstest. Eigentum, Identität, ACL-Einträge und obligatorische Richtlinien fehlen, sodass der Rechner nicht sagen kann, welche Klasse eine echte Anfrage regelt.
Die vier Kombinationen – r ohne x, x ohne r, beide und keines von beiden, und was ein Benutzer jeweils tatsächlich tun kann
Die vier Lese- und Ausführungskombinationen sind darstellbar, ohne ein umfassenderes Systemverhalten zuzuweisen. Ziffer 4 ist r--, Ziffer 1 ist --x, Ziffer 5 ist r-x und Ziffer 0 ist ---. Für ein Verzeichnisziel verknüpft die generierte Prosa diese ausgewählten Bits mit der Auflistung und der namensbasierten Erreichbarkeit. „Write“ bleibt ein unabhängiges Flag und wird weder durch „Read“ noch durch „Execute“ impliziert.
Verwenden Sie die Matrix, um jeweils eine Klasse zu isolieren, anstatt einen dreistelligen Modus als Bezeichnung zu behandeln. Die Seite erstellt die Ganzzahl jedes Mal neu, wenn sich ein Feld ändert, sodass die übereinstimmende Ziffer und die symbolische Position zusammen verschoben werden. Es kann kein Verzeichnis geöffnet oder eine Suche durchgeführt werden. Bei den vier Kombinationen handelt es sich um exakt modellierte Berechtigungen, während jedes effektive Ergebnis vom separat beobachteten Zielkontext abhängt.
Traversal gilt für jeden Vorfahren – weshalb ein restriktives Verzeichnis weiter oben im Pfad den Zugriff auf alles darunter unterbricht
Artikel 501 identifiziert eine fehlende Ausführungsberechtigung für das übergeordnete Verzeichnis als Grund dafür, dass ein gültiger Dateimodus den Zugriff möglicherweise nicht löst. Jede Verzeichniskomponente in einem Pfad stellt ihre eigene Modusfrage. Der Rechner kann jeden bereitgestellten Wert unabhängig dekodieren und anzeigen, ob Eigentümer, Gruppe oder eine andere Ausführung vorhanden ist. Es kann den Pfad nicht durchlaufen oder bestimmen, welche Klasse für die anfordernde Identität gilt.
Dies macht die Ahnenanalyse zu einem externen Inspektionsworkflow und nicht zu einer Rechnerfunktion. Wenn ein übergeordnetes Element als 750 gemeldet wird, zeigt die Seite rwxr-x---; Wenn ein anderer 700 ist, wird rwx------ angezeigt. Dieser Unterschied ist konkret, es lässt sich jedoch keine Schlussfolgerung ziehen, bis die Eigentumsverhältnisse und die Prozesszugehörigkeit bekannt sind. Die Befehlsvorschau bleibt inaktiv und bietet keinen Hinweis darauf, dass eine Änderung eines der Verzeichnisse angemessen ist.
Bearbeitetes Beispiel: Reparieren eines Webstamms – Überprüfung jedes Verzeichnisses von/bis zur bereitgestellten Datei und Auswahl von 755 oder 750
Überprüfen Sie für ein Web-Root-Beispiel die bereitgestellten Modi Komponente für Komponente, anstatt einen Wert für den Baum vorzuschreiben. Modus 755 gewährt Besitzer rwx und Gruppe und andere r-x; Modus 750 entfernt alle anderen Berechtigungen, während die Gruppe r-x beibehalten wird. Der Konverter macht diesen Unterschied sichtbar. Es kann keinen Webprozess identifizieren, den Pfad ermitteln oder auswählen, welche Klasse durchlaufen werden muss.
Überprüfen Sie die bereitgestellte Datei getrennt von ihren Verzeichnissen. Ein bereitgestellter Dateimodus wie 644 gibt rw-r--r-- wieder, während die gleiche als Verzeichnis ausgewählte Nummer unterschiedliche Aktionen beschreibt und nicht überall ausgeführt werden kann. Diese zielsensitive Formulierung verhindert, dass das Lesen von Dateien mit dem Durchsuchen von Verzeichnissen verwechselt wird. Die Eignung hängt immer noch vom tatsächlichen Eigentümer, der Prozessidentität, den Vorfahren und allen Zugriffskontrollebenen ab, die auf der Seite fehlen.
Rekursion richtig gemacht – warum chmod -R 644 auf einem Baum der klassische Fehler ist und wie Groß-X oder find -type d ihn vermeidet
Die rekursive Anzeige ist absichtlich bescheiden. Wenn Sie es auswählen, wird nur -R in den generierten chmod-Befehl eingefügt; Der Rechner zählt keinen Baum auf und unterscheidet keine Dateien von Verzeichnissen. Die Anwendung eines vollständigen 644-Modus überall würde dazu führen, dass die Verzeichnisausführung in jeder Klasse frei bleibt. Die Seite kann dieses Ergebnis anzeigen, implementiert jedoch weder ein großes X noch einen Dateityp-Auswahl-Workflow.
Auch generierte symbolische Zuordnungen bleiben fixiert. Für 644 sind sie u=rw,g=r,o=r, kein relativer Befehl, der die Durchquerung bedingt beibehält. Das Feld im ls-Stil zeigt rw-r--r-- und sollte nicht mit dieser Zuweisungsliste verwechselt werden. Jede externe Rekursionsstrategie muss außerhalb dieser Route überprüft werden, einschließlich der Zielauswahl, der Linkbehandlung und der endgültigen Modi, die auf verschiedene Objekttypen angewendet werden.
Was dies nicht abdeckt – Sticky- und Setgid-Verhalten in Verzeichnissen und ACL-Masken, die in ihren eigenen Beiträgen behandelt werden
Sticky-, Setgid- und ACL-Masken sind von der gewöhnlichen Traversal-Frage getrennt. Der Rechner implementiert zwar Sticky- und Setgid-Darstellungen sowie zielsensitive Erklärungen, aber der Kernvergleich dieses Artikels muss nur gelesen und ausgeführt werden. ACL-Masken werden überhaupt nicht dargestellt. Eine korrekte Basismoduskonvertierung kann nicht feststellen, ob zusätzliche Einträge den Zugriff für eine bestimmte Identität gewähren oder einschränken.
Umask ist ebenfalls außerhalb des Tests. Die Seite akzeptiert einen abgeschlossenen Modus, nicht die Prozesseinstellungen, die ihr möglicherweise vorausgegangen sind. Wenn ein Verzeichnis mit 644 angezeigt wird, kann der Konverter die fehlenden Ausführungspositionen anzeigen und einen Kandidatenbefehl für einen anderen bereitgestellten Wert generieren. Es kann nicht gesagt werden, warum der Modus entstanden ist, ob die Eigentumsverhältnisse falsch sind oder ob eine Änderung den tatsächlichen Fehler behebt.
Takeaway: Verzeichnisse benötigen x, um verwendbar zu sein – und der Rechner macht den Unterschied zwischen 644 und 755 als r-- gegenüber r-x sichtbar
Die dauerhafte Erkenntnis ist, dass das Verzeichnis x in der Erklärung dieses Rechners die eintrags- und namensbasierte Erreichbarkeit darstellt. Der Modus 644 zeigt r-- für Gruppe und andere an, während 755 r-x für beide anzeigt und auch Besitzerausführung hinzufügt. Das synchronisierte Oktalfeld, das symbolische Feld, die Matrix und die Prosa machen diese Unterscheidung überprüfbar, ohne dass eine der bekannten Zahlen als allgemein korrekt behandelt wird.
Stellen Sie eine Diagnose, die über die Arithmetik hinausgeht, bevor Sie etwas anwenden. Bestätigen Sie die relevante Identität, den Besitz, den von jedem Vorfahren bereitgestellten Modus und den Zieltyp. Verwenden Sie dann den Rechner, um alle vollständigen Kandidatenwerte zu überprüfen. Es lehnt fehlerhafte Notation ab und zeigt genau an, welche Bits sich ändern, öffnet jedoch niemals den Pfad, führt chmod nicht aus, wertet die Anwendungsrichtlinie aus und beweist nicht, dass herkömmliche Modusbits die einzige Autorität sind.