Entwicklertools · Chmod-Rechner
So lesen Sie ls -l-Berechtigungen und konvertieren sie in einen Oktalmodus
· Wie es funktioniert
chmod Unix Entwickler-Workflow
Die zehnstellige Zeichenfolge am Anfang von ls -l ist ein Dateityp plus neun Berechtigungsbits. Dieser Beitrag zeigt, wie man es dekodiert und den von chmod gewünschten Oktalmodus erzeugt, einschließlich der Sonderbitbuchstaben.
Ein Ticket mit eingefügtem -rw-r-----+ – Sie müssen wissen, ob Sie den Benutzer anweisen sollen, chmod 640 oder etwas anderes auszuführen
Eine eingefügte Zeichenfolge wie -rw-r-----+ enthält mehr, als dieser Parser akzeptiert. Der erkannte Kern ist ein neunstelliger Berechtigungstext, dem optional ein unterstütztes Dateitypzeichen vorangestellt ist. Das nachgestellte Plus macht die Eingabe zu lang und wird abgelehnt. Durch das Entfernen dieses externen Markers bleibt -rw-r----- übrig, was in 640 konvertiert wird: Eigentümer liest/write, Gruppe liest und keine Berechtigungen für andere.
Diese Konvertierung dekodiert nicht, was das Pluszeichen darstellt, abgesehen von der Warnung in Artikel 501, dass es in einer langen Auflistung möglicherweise für ACLs verwendet wird. Der Rechner verfügt über keine ACL-Einträge oder Maske. Es überprüft auch nicht den Automaten, Besitzer, die Gruppe oder den Pfad des Tickets. Modus 640 ist daher der Basisberechtigungswert, der durch den akzeptierten Kern dargestellt wird, und keine vollständige Antwort auf den effektiven Zugriff.
Das erste Zeichen ist der Typ – Bindestrich, d, l, c, b, p und s, und warum es nicht Teil des Modus ist
Das optionale erste Zeichen wird als Typmarkierung und nicht als Berechtigungsbit behandelt. Der Parser erkennt -, d, l, b, c, p, s, D und ?. Wenn eine vor neun gültigen Berechtigungspositionen erscheint, wird sie aus arithmetischen Gründen entfernt. Allein die resultierenden Eigentümer-, Gruppen- und anderen Tripel bestimmen den Oktalwert und die Matrixauswahl.
Dieses Verhalten lässt sich leicht mit entsprechenden Eingaben überprüfen. Sowohl rwxr-x--- als auch -rwxr-x--- erzeugen 750, da der führende Bindestrich kein Modusbit beisteuert. Eine Verzeichnismarkierung kann vor demselben Hauptteil stehen und dennoch dieselbe Ganzzahl ergeben. Der Zielselektor steuert den erläuternden Wortlaut separat. Das Akzeptieren eines Typzeichens bedeutet also nicht, dass der Browser dieses Objekt erkannt oder geöffnet hat.
Neun Zeichen in drei Gruppen – Besitzer, Gruppe, andere, immer in rwx-Reihenfolge, mit einem Bindestrich für jedes ausgeschaltete Bit
Die neun Berechtigungspositionen bilden drei feste Tripel in Eigentümer-, Gruppen- und sonstiger Reihenfolge. Innerhalb jedes Tripels nimmt „read“ die erste Position ein, „write“ die zweite und „execute“ die dritte. Ein Bindestrich bedeutet, dass das entsprechende Bit ausgeschaltet ist. Die positionsspezifische Validierung lehnt einen falsch platzierten Buchstaben ab, statt zu erraten, sodass ein r an einer Schreibposition nicht stillschweigend zu einer anderen Berechtigung werden kann.
Jedes akzeptierte Tripel wird durch die Gewichtungen im Artikel 501 einer Oktalziffer zugeordnet: Lesen ist 4, Schreiben ist 2 und Ausführen ist 1. Die Matrix zeigt die gleichen Flags wie Kontrollkästchen und baut die Ganzzahl neu auf, wenn sich eine ändert. Sonderzeichen werden nur an Ausführungspositionen akzeptiert, wobei Setuid, Setgid oder Sticky zusammen mit dem zugrunde liegenden Ausführungsstatus beibehalten werden.
Arbeitsbeispiel: -rwxr-x--- zu 750 – jedem Buchstaben 4, 2, 1 zuweisen und pro Gruppe summieren
Konvertieren Sie -rwxr-x---, indem Sie die führende Typmarkierung ignorieren und den Textkörper in rwx, r-x und --- aufteilen. Der Eigentümer hat 4+2+1 und produziert 7. Die Gruppe hat 4+1, was 5 ergibt. Andere haben kein aktiviertes Bit und erzeugen 0. Der Rechner gibt 750 zurück und wählt die passenden neun gewöhnlichen Berechtigungsfelder aus.
Die umgekehrte Prüfung sollte auf demselben Textkörper landen. Geben Sie 750 ein und das symbolische Feld wird zu rwxr-x---; Wählen Sie eine reguläre Dateimarkierung für das angezeigte Formular und es wird zu -rwxr-x---. Die Zuweisungsvorschau hat eine andere Syntax: u=rwx,g=rx,o=. Alle drei Ansichten beschreiben einen festen Modus, während die Eigentumsverhältnisse und die Weisheit ihrer Anwendung ungeklärt bleiben.
Die nachgestellten Plus- und At-Zeichen – ACL-Einträge mit der Bedeutung + existieren, das @ bedeutet erweiterte Attribute unter macOS und ist nicht Teil des Modus
Nachgestellte Plus- und At-Zeichen sind Metadatenmarkierungen in der Gliederung, aber die implementierte Tatsache ist enger gefasst: Dieser Parser lehnt beides ab, weil akzeptierte Eingaben nach dem Berechtigungstext enden. Artikel 501 identifiziert speziell ein nachgestelltes Pluszeichen bei ACLs. CHMOD_SOURCES bietet keine entsprechende Interpretation für ein At-Zeichen, daher weist dieser Abschnitt ihm keine Betriebssystembedeutung zu, die vom Repository nicht unterstützt wird.
Entfernen Sie keine Markierung blind, wenn es auf effektiven Zugriff ankommt. Trennen Sie stattdessen den akzeptierten neun- oder zehnstelligen Kern für die Konvertierung in den Basismodus und untersuchen Sie den Rest mit Beweisen aus dem Ursprungssystem. Der Rechner kann zeigen, dass rw-r----- 640 bedeutet. Es kann keine zusätzlichen Metadaten erklären, erweiterte Attribute lesen oder feststellen, ob ein anderer Zugriffskontrollmechanismus die Aktionen eines Benutzers oder Prozesses ändert.
Nachgestellte Plus- und At-Zeichen sind Metadatenmarkierungen, die dieser Parser ablehnt
Externe Statistikbefehle werden vom Browser-Rechner nicht ausgeführt. Die Seite hat keinen Command-Runner- oder Dateisystemzugriff; Sein Pfadfeld dient nur dazu, in Anführungszeichen gesetzten CHMOD-Text für die Anzeige zu erstellen. Folglich kann es keinen aktuellen Modus abrufen, keine plattformspezifische Befehlsausgabe vergleichen oder bestätigen, dass eine eingefügte Zeichenfolge von einem bestimmten Dienstprogramm stammt. Der Benutzer muss den zu konvertierenden Wert angeben.
Sobald ein vertrauenswürdiger Modus bereitgestellt wird, bietet der Browser eine unabhängige Darstellungsprüfung an. Geben Sie den symbolischen Kern ein und vergleichen Sie dessen Oktalergebnis, Matrix, Zusammenfassung und Zuweisungsvorschau. Die Vereinbarung erkennt Transkriptions- und Rechenfehler innerhalb des unterstützten Formats. Es validiert den externen Sammlungsbefehl nicht, gibt keine Eigentümerschaft preis und beweist nicht, dass die dargestellten Berechtigungen für das Objekt wirksam sind, von dem der Text kopiert wurde.
Externe Statistikbefehle werden vom Browser-Rechner nicht ausgeführt
ACL-Dekodierung bleibt außerhalb der Route. Sein Modell enthält Besitzer, Gruppe, Andere und drei Spezialbits, ohne benannte Einträge oder ACL-Maske. Ebenso fehlt die Windows-Berechtigungsdekodierung: Es gibt kein Windows-Identitätsmodell, keine Zugriffskontroll-Eintragssyntax und keine Plattformerkennung. Ein Kern im Unix-Stil mit neun Positionen kann konvertiert werden, aber aus diesem Ergebnis kann kein zusätzliches Berechtigungssystem rekonstruiert werden.
Diese Grenze schränkt auch die Diagnose ein. Ein ausreichend erscheinender Basismodus beweist nicht, dass eine ACL oder eine andere Richtlinie irrelevant ist, während ein restriktiver Modus nicht jede mögliche Gewährung identifiziert. Der Rechner rechnet nur die zwölf dargestellten Bits ab. Verwenden Sie die Ausgabe, um den normalen Modus genau anzugeben, und behalten Sie sich dann Ansprüche auf eine wirksame Autorisierung für Tools und Dokumentationen vor, die das externe Berechtigungssystem tatsächlich offenlegen.
ACL- und Windows-Berechtigungsdekodierung bleiben außerhalb der Route
Das Lesen eines Modus im ls-Stil wird mechanisch, sobald der akzeptierte Kern isoliert ist. Lassen Sie ein erkanntes führendes Zeichen weg, teilen Sie die verbleibenden neun Positionen in Besitzer, Gruppe und Andere auf und lesen Sie insgesamt 4, schreiben Sie 2 und führen Sie 1 innerhalb jedes Tripels aus. Der Rechner führt diese Konvertierung durch und validiert positionsspezifische Buchstaben, einschließlich der implementierten s-, S-, t- und T-Formen.
Halten Sie die Schlussfolgerung proportional zur Eingabe. Eine erfolgreiche Konvertierung beweist, dass die akzeptierte Zeichenfolge konsistent einem Oktalmodus, einer Matrix, einer Zusammenfassung und einer generierten Zuweisung zugeordnet ist. Stat wird nicht ausgeführt, der Pfad wird nicht überprüft, eine nachgestellte Markierung wird nicht dekodiert, der Besitzer wird nicht identifiziert und chmod wird nicht angewendet. Diese Grenzwerte machen die Ausgabe nützlich: Sie entspricht genau der Basismodus-Arithmetik und schweigt über Beweise, die sie nie gesammelt hat.