Entwicklertools · Chmod-Rechner
Wie umask die Standardberechtigungen für neue Dateien und Ordner festlegt
· Wie es funktioniert
chmod Unix Entwickler-Workflow
Neue Dateien beginnen nicht bei 777; Zuerst wird eine Maske aufgetragen. Dieser Beitrag zeigt den genauen bitweisen Vorgang, warum Dateien und Verzeichnisse unterschiedlich aussehen und wie man über umask 022, 027 und 077 nachdenkt.
Dateien, die der Webserver nicht lesen kann – ein Cron-Job schreibt 600 Dateien in ein Verzeichnis, das Nginx bereitstellt, und niemand hat chmod auf irgendetwas ausgeführt
Ein neu beobachteter Dateimodus kann hier dekodiert werden, auch wenn der Prozess, der ihn erzeugt hat, unbekannt ist. Geben Sie 600 ein und der Rechner zeigt rw-------: Besitzer liest und schreibt, ohne Berechtigungen für Gruppe oder andere. Das erklärt die Bits des gelieferten Ergebnisses. Es wird nicht festgestellt, warum ein geplanter Job diesen Wert erzeugt hat oder ob ein Webprozess die Datei lesen kann.
Artikel 501 sorgt für die nötige diagnostische Zurückhaltung. Ein gültiger Modus kann mit einem falschen Besitz oder einem fehlenden Ausführungsbit in einem übergeordneten Verzeichnis koexistieren. Diese Seite erhält weder Prozessidentitäts- noch Pfadinformationen. Es kann 600 mit einem vorgeschlagenen 640 vergleichen und das hinzugefügte Gruppenlesebit offenlegen, aber es kann den ursprünglichen Modus nicht umask, einem Dienst, einer Shell oder einem Dateisystem zuordnen.
Woher neue Berechtigungen kommen – der angeforderte Modus (normalerweise 666 für Dateien, 777 für Verzeichnisse) und die Umask des Prozesses
Angeforderte Erstellungsmodi und umask sind Hintergrundeingaben, keine Rechnersteuerungen. Es gibt kein Umask-Feld und keine Operation, die eine Datei oder ein Verzeichnis erstellt. Jedes Beispiel im Erstellungsmodus muss daher als extern berechnetes Ergebnis vorliegen. Nach der Bereitstellung kann der Rechner das Ergebnis in oktale, symbolische, Matrix-, Zusammenfassungs- und einfache englische Formen übersetzen, ohne anzugeben, wie der Wert ermittelt wurde.
Dieser korrigierte Bereich ist wichtig, da die synchronisierte Ausgabe maßgeblicher aussehen kann, als sie ist. Die Eingabe von 640 ergibt rw-r----- und identifiziert den Eigentümer read/write plus Gruppenread. Die Seite kann diese Darstellung überprüfen. Es kann keine Standardwerte für einen Anmeldeprozess, eine geplante Aufgabe, einen Dienst, einen Container oder ein Speichersystem vorhersagen, da keiner dieser Kontexte in seinen Eingaben oder Implementierungen vorkommt.
Angeforderte Erstellungsmodi und umask sind Hintergrundeingaben, die hier nicht implementiert sind
UND-NICHT-Arithmetik muss außerhalb dieses Rechners durchgeführt werden. Sein Kern akzeptiert eine vollständige Ganzzahl und zerlegt sie in benannte Flags. es gibt keinen zweiten Operanden für eine Erstellungsmaske. Folglich kann die Seite keine Maskenformel demonstrieren, Subtraktion mit bitweisen Operationen vergleichen oder entscheiden, ob eine externe Berechnung korrekt durchgeführt wurde, bevor der resultierende Modus aufgerufen wurde.
Was überprüft werden kann, ist das endgültige Bitmuster. Wenn eine andere vertrauenswürdige Quelle 640 bereitstellt, zeigt die Matrix Lese- und Schreibberechtigungen des Eigentümers, Leseberechtigungen der Gruppe und keine anderen Berechtigungen an. Durch Ändern der Lesegruppe werden 600 neu erstellt, während durch Ändern anderer Lesevorgänge 644 neu erstellt wird. Diese Übergänge verifizieren die Modusarithmetik im Konverter, ohne sie als Erstellungsmaskenberechnungen oder als Beweis für einen unsichtbaren Prozess darzustellen.
UND-NICHT-Arithmetik muss außerhalb des Rechners durchgeführt werden
Der Rechner kann die resultierenden Datei- und Verzeichnismodi vergleichen, erstellt aber keinen der beiden. Wenn 644 ausgewählt ist, beschreibt die Erklärung zu regulären Dateien das Lesen und Ändern einer Datei. Wenn Sie das Ziel auf „Verzeichnis“ umstellen, werden diese Verben auf „Auflisten“, „Einträge ändern“ und „Erreichen von Namen“ umgestellt. Die Ganzzahl bleibt 644. Dieser Kontrast zeigt, warum der Zieltyp wichtig ist, ohne festzulegen, welche Erstellung Standard für Programmanforderungen ist.
Ein separat bereitgestelltes 755-Ergebnis kann auf die gleiche Weise überprüft werden. Seine Anzeige ist rwxr-xr-x, wobei die Ausführung für alle Klassen aktiv ist; 644 ist rw-r--r--, wobei die Ausführung durchgehend fehlt. Die Seite macht diesen Unterschied deutlich deutlich. Es werden keine Werte von 666, 777, 022 oder einer anderen Hintergrundeingabe abgeleitet, da diese Berechnungen nicht in CHMOD_SOURCES implementiert sind.
Der Rechner kann die resultierenden Datei- und Verzeichnismodi vergleichen, erstellt jedoch keinen
Halten Sie für ein Beispiel mit einer restriktiven Maske die Berechnung extern und dekodieren Sie nur die angegebenen Ergebnisse. Wenn eine beobachtete reguläre Datei 640 ist, gibt der Rechner rw-r-----; Wenn ein beobachtetes Verzeichnis 750 ist, wird rwxr-x--- gerendert. Der Eigentümer behält in beiden Fällen einen umfassenderen Zugriff, die Gruppe erhält einen engeren Zugriff und die anderen erhalten keinen Zugriff. Diese Aussagen ergeben sich direkt aus den abgeschlossenen Modi.
Ein weiteres extern bereitgestelltes Paar, 600 und 700, macht dieselbe Überprüfungsmethode sichtbar, ohne ihren Ursprung anzugeben. Der Modus 600 ermöglicht nur dem Eigentümer Lese- und Schreibzugriff auf eine Datei. Der Modus 700 ermöglicht dem Besitzer nur das Lesen, Schreiben und Ausführen in einem Verzeichnis. Der Konverter kann jede Klasse und jedes Bit bestätigen, aber er kann keines der Ergebnisse anhand seiner eigenen Beweise einer bestimmten umask-Einstellung zuordnen.
Arbeitsbeispiel: Extern berechnete Ergebnisse für restriktive Masken dekodieren
Wo ein Prozess umask erhält, liegt außerhalb des Repository-Beweises. Der Rechner enthält keine Integration mit Shells, Schedulern, Service Managern, Containern oder Prozessumgebungen. Die Nennung eines dieser Systeme als Ursache eines Modus würde daher über das hinausgehen, was die Seite beobachtet. Beginnen Sie mit einem vertrauenswürdigen Modus, der anderswo gesammelt wurde, und verwenden Sie diese Route dann nur, um den Eigentümer, die Gruppe und andere Teile lesbar zu machen.
Die Befehlsvorschau schließt diese Beweislücke nicht. Es kann einen angegebenen Pfad angeben und optional -R anzeigen, öffnet jedoch niemals den Pfad oder liest Prozesseinstellungen. Ebenso ändert der Zielselektor die erklärende Sprache, anstatt einen Objekttyp zu entdecken. Eine konsistente Konvertierung schränkt die Berechtigungsfrage ein; Es lässt sich nicht erkennen, welche Komponente den Modus ausgewählt hat oder ob die Auswahl beabsichtigt war.
Wo ein Prozess umask erhält, liegt außerhalb des Repository-Beweises
Standard-ACLs und explizite Erstellungsmodi liegen außerhalb dieses Tools. Sein Datenmodell verfügt über eine Besitzerklasse, eine Gruppenklasse, alle anderen und drei Spezialbits. Es gibt keine benannten ACL-Einträge, ACL-Masken, Erstellungsaufrufe oder Programmargumente. Der Rechner kann daher nicht entscheiden, ob ein abgeschlossener Modus von einer anderen Zugriffskontrollschicht oder von einer Anwendung stammt, die eine bestimmte Anfrage liefert.
Ein Modus kann weiterhin überprüft werden, ohne dass diese Mechanismen zusammenfallen. Geben Sie den beobachteten Oktalwert ein, bestätigen Sie die neun symbolischen Positionen und vergleichen Sie die Matrix mit der vierstelligen Zusammenfassung. Wenn sie zustimmen, wurde der traditionelle Modus korrekt dekodiert. Für jede Behauptung über Standardeinstellungen, ACL-Effekte oder Programmverhalten sind Beweise des Erstellers und des Dateisystems erforderlich, nicht eine andere Interpretation derselben Ganzzahl.
Standard-ACLs und explizite Öffnungsmodi liegen außerhalb dieses Tools
Der korrigierte Workflow wird an anderer Stelle berechnet, dann überprüfen Sie hier den resultierenden Modus. Geben Sie die vollständige Zeichenfolge im Oktal- oder LS-Stil an und lassen Sie die synchronisierten Felder jedes Bit offenlegen. Die Validierung erkennt fehlerhafte Oktalziffern und Buchstaben an falschen symbolischen Positionen. Es validiert keinen umask-Ausdruck, erkennt keinen Erstellungskontext und sagt nicht voraus, was eine zukünftige Datei oder ein zukünftiges Verzeichnis erhalten wird.
Behandeln Sie das Ergebnis als eine Diagnoseebene. Ein entschlüsseltes 640 oder 750 kann eine unerwartete Gewährung oder ein fehlendes Ausführungsbit aufdecken, während Artikel 501 uns daran erinnert, den Besitz und die Durchquerung des übergeordneten Verzeichnisses separat zu überprüfen. Halten Sie inne, bevor Sie eine Ursache zuweisen. Der Rechner beweist, wie ein bereitgestellter Wert Berechtigungen zugeordnet wird. Es bietet keine Grundlage für Behauptungen über Shell-, Service-, Container-, ACL- oder Dateisystem-Standardeinstellungen.