Entwicklertools · Chmod-Rechner
chmod vs chown: Warum das Ändern des Modus oft der falsche Hebel ist
· Warum es wichtig ist
chmod Unix Zugriffskontrolle
Modusbits haben nur eine Bedeutung in Bezug auf einen Besitzer und eine Gruppe. Dieser Beitrag trennt die beiden Befehle und zeigt, wie Sie anhand des Fehlers und der Prozessidentität entscheiden, welchen Sie tatsächlich benötigen.
Zwei Befehle, ein Fehler – die verweigerte Berechtigung wurde diesen Monat dreimal mit drei verschiedenen chmod- und chown-Zeilen „behoben“.
chmod und chown adressieren unterschiedliche Informationen, auch wenn beide in der Nähe eines Berechtigungsfehlers erscheinen. Der Rechner modelliert Berechtigungsbits für Besitzer, Gruppe und andere sowie spezielle Bits. Es erhält keinen aktuellen Eigentümer oder keine aktuelle Gruppe und führt keine Eigentümeroperation aus. Ein Modus kann daher korrekt übersetzt werden, während die Identitätsbeziehung unbekannt und ungetestet bleibt.
Trennen Sie zunächst die Fragen. „Was erlaubt 750?“ ist verantwortlich: Besitzer bekommt rwx, Gruppe bekommt r-x und andere bekommen nichts. „Wem gehört das?“ und „Welche Identität führt den Prozess aus?“ erfordern externe Beweise. Das Bearbeiten eines Modus vor dem Auflösen der Identität kann dazu führen, dass die falsche Klasse erweitert wird. Synchronisierte Ansichten können nicht zwischen chmod und Eigentümerwechseln wählen.
Zuerst Eigentümer, dann Modus – wie der Kernel Eigentümer, Gruppe oder andere für einen Prozess auswählt, bevor er sich irgendwelche Bits ansieht
Die Klassenauswahl hängt von der Identität ab, die der Rechner nie erhält. Sein Besitzer, seine Gruppe und andere Tripel sind Kategorien, keine entdeckten Konten. Es kann nicht wissen, ob ein Prozess mit dem Eigentümer übereinstimmt, zur Dateigruppe gehört oder in eine andere Gruppe fällt. Es rendert einfach alle drei Berechtigungssätze aus einer Ganzzahl; Zeugnisse bedürfen einer externen Prüfung.
Identität ist daher eine Voraussetzung für die Beurteilung der Relevanz. Im Modus 640 hat der Besitzer Lese- und Schreibzugriff, die Gruppe hat Lesezugriff und andere haben nichts. Die Umrechnung ist sicher, das anwendbare Tripel jedoch nicht. Keine UID, Mitgliedschaft, Containerzuordnung oder ACL gelangt in den Status. Stellen Sie zunächst diese Fakten fest und bewerten Sie dann die entsprechenden Bits.
Die Klassenauswahl hängt von der Identität ab, die der Rechner nicht erhält
Eigentumstools ändern, wer Eigentümer- oder Gruppenbeziehungen innehat, während chmod die mit diesen Klassen verbundenen Berechtigungen ändert. Dieser Rechner implementiert nur die Seite von chmod. Es generiert oktalen oder symbolischen chmod-Text und gibt niemals chown oder chgrp aus. Es verändert auch keine Dateien; Das Feld „Pfad“ erstellt nur eine zitierte Vorschau zur externen Überprüfung.
Durch die Erweiterung eines Modus können zusätzliche Klassen verfügbar gemacht werden, ohne dass der Besitz korrigiert werden muss. Vergleichen Sie 750 mit 757: Letzteres fügt weitere Lese- und Ausführungsvorgänge hinzu. Der Rechner zeigt dieses Delta an, kann aber nicht sagen, ob ein anderer Kontovorteil oder ein anderes Konto den Fehler verursacht hat. Legen Sie die Eigentümer-, Gruppen- und Prozessidentität extern fest und gewähren Sie dann nur den vorgesehenen Klassen die erforderlichen Bits.
Das Shared-Group-Muster – chgrp plus setgid für das Verzeichnis plus 2775 als Standardantwort für zwei Benutzer, die beide schreiben müssen
Ein gemeinsam genutzter Gruppenworkflow erfordert externe Eigentümertools und -richtlinien. Die Voreinstellung 775 trägt die Bezeichnung „Mit einer Gruppe geteilt“, da das Gruppenschreiben aktiviert ist. Voreinstellung 2775 fügt setgid hinzu und rendert rwxrwsr-x; Bei Verzeichnissen erben neue Dateien die Gruppe des Verzeichnisses. Diese Bitbeschreibungen stellen keinen vollständigen Entwurf für die Zusammenarbeit oder eine Empfehlung für die Bereitstellung dar.
Die Seite kann keine Gruppen erstellen, Mitglieder auswählen, chgrp ausführen oder feststellen, dass 2775 zu einer Arbeitslast passt. Außerdem können keine Standard-ACLs, Umasks oder das Anwendungsverhalten überprüft werden. Behandeln Sie die Voreinstellung als Arithmetik, nicht als Richtlinie. Klären Sie Eigentum und Mitgliedschaft an anderer Stelle, vergleichen Sie dann die Kandidatenmodi und stützen Sie dabei den tatsächlichen Entwurf des gemeinsam genutzten Verzeichnisses auf Umweltbeweise.
Ein gemeinsam genutzter Gruppenworkflow erfordert externe Tools und Richtlinien für die Eigentümerschaft
Nachdem Sie den Besitz anderswo geklärt haben, überprüfen Sie den Verzeichnismodus 750. Der Besitzer empfängt Lese-, Schreib- und Ausführungsvorgänge; Gruppe empfängt Lesen und Ausführen; der andere erhält nichts. Die Gruppe darf Einträge auflisten und eingeben, aber keine Einträge erstellen, umbenennen oder löschen. Der Rechner rendert rwxr-x--- und u=rwx,g=rx,o=, ohne ein tatsächliches Verzeichnis oder Konto zu überprüfen.
Untersuchen Sie 640 separat auf eine reguläre Datei. Es wird zu rw-r-----: Eigentümer liest und schreibt, Gruppe liest und nichts für andere. Die Seite zeigt beide Ergebnisse an, kann sie jedoch nicht rekursiv zuweisen, kein Bereitstellungskonto identifizieren oder eine Dienstgruppe auswählen. Um die Eignung für /var/www zu beanspruchen, sind Arbeitsaufwand und Identitätsnachweise erforderlich, die hier fehlen.
Funktioniertes Beispiel: Überprüfen Sie 750 und 640, nachdem der Besitz anderswo geklärt wurde
Die Ermittlung der Prozessidentität erfolgt außerhalb dieses Browser-Tools. Keine Quelle ruft ps auf, liest die Dienstkonfiguration, untersucht Container-Namespaces oder fragt Kontodatenbanken ab. Der Rechner kann ein laufendes Konto oder zusätzliche Gruppen nicht identifizieren und kann daher nicht ermitteln, welche Berechtigungsklasse einen Vorgang regelt. Für diese Klassifizierung sind aktuelle Nachweise der zuständigen Laufzeit- und Dateisystemumgebung erforderlich.
Sobald die Identität extern festgestellt ist, prüfen Sie die entsprechende Klasse genau. Wenn ein Prozess Gruppenzugriff verwenden soll, gewährt 640 dieser Klasse Lese-, aber keinen Schreibzugriff, während 660 Gruppenschreibzugriff hinzufügt. Bei dieser Berechnung handelt es sich nicht um eine Empfehlung; Das richtige Bit hängt von den erforderlichen Operationen ab. Halten Sie Erkennung und Richtlinien außerhalb des Konverters und verhindern Sie damit Darstellungsfehler.
Die Erkennung der Prozessidentität liegt außerhalb dieses Browser-Tools
ACLs und Container-UID-Zuordnung fehlen im Rechner. Sein Modell umfasst drei gewöhnliche Klassen und spezielle Bits, aber keine benannten ACL-Einträge, Maske oder Namespace-Übersetzung. Ein Modus kann ausreichend aussehen, während eine andere Ebene den Zugriff einschränkt, oder restriktiv, während eine ACL ihn erweitert. Die angegebene Ganzzahl allein kann keine der beiden Möglichkeiten auflösen.
Fehlende Eingaben schränken sowohl die Diagnose als auch die Behebung ein. Die Route kann nicht zwischen chmod, chown, ACL-Änderungen oder Mapping-Korrekturen wählen. Es kann einen bereitgestellten Basismodus dekodieren und Sonderbuchstaben wie s, S, t und T wiedergeben. Behandeln Sie dies als eine Beweisschicht, nicht als Beweis für den Zugriff Dritter oder Container.
Takeaway: Entscheiden Sie sich vor den Bits für die Identität – und verwenden Sie dann den Chmod-Rechner, um die Bits genau so breit zu machen, wie die Identität benötigt
Entscheiden Sie sich vor den Bits für die Identität. Ein Modus funktioniert über Besitzer, Gruppen und andere Klassen, aber der Rechner kennt Berechtigungen und nicht die Konten, die sie belegen. Nachdem die externe Inspektion den Besitz und die Prozessidentität festgestellt hat, geben Sie einen Kandidaten ein und überprüfen Sie jedes beabsichtigte Lese-, Schreib- und Ausführungsflag. Beim Vergleich benachbarter Werte werden versehentliche Verbreiterungen sichtbar, bevor Befehle den Browser verlassen.
Die endgültige Ausgabe bleibt ein Vorschlag. Die Seite weist fehlerhafte Eingaben zurück, synchronisiert oktale und symbolische Formen, erklärt Datei- und Verzeichnisbedeutungen, zitiert Pfade und generiert chmod-Text. Es ist nicht möglich, Befehle auszuführen, den Besitzer zu ändern, ACLs auszuwerten, Richtlinien zu überprüfen oder Anwendungen zu testen. Validieren Sie alle vorgeschlagenen Änderungen im verantwortlichen System, nachdem Sie die Identität festgelegt haben.