Entwicklertools · Chmod-Rechner
Mit find -perm nach weltweit beschreibbaren Dateien und Setuid-Binärdateien suchen
· Warum es wichtig ist
chmod Unix Zugriffskontrolle
Zwei Berechtigungsmuster sind für viele reale Vorfälle verantwortlich: Dateien, die jeder ändern kann, und Programme, die als Root ausgeführt werden. Dieser Beitrag zeigt, wie man beides mit find -perm findet und was man dagegen tun kann.
Der Prüfer bittet um eine Liste, die Sie nicht haben – welche Dateien jeder Benutzer ändern kann und welche Programme bei der Ausführung Berechtigungen erhöhen
Eine Berechtigungsüberprüfung beginnt oft mit Modi, die bereits an anderer Stelle erfasst wurden: vielleicht 0002, 4000, 2000 oder ein vollständiger Wert wie 4755. Der Rechner kann diese Zahlen in Eigentümer-, Gruppen- und andere Berechtigungen, einschließlich der drei Sonderbits, entschlüsseln. Es durchsucht keine Verzeichnisse, überprüft keine Binärdateien und erstellt keine Pfadinventur.
Behandeln Sie jeden bereitgestellten Modus als Beschreibung von Bits, nicht als Urteil über eine Datei. Geben Sie es ein, vergleichen Sie das Oktalfeld mit der symbolischen Anzeige und der Kontrollkästchenmatrix und notieren Sie dann, was sich geändert hat. Eigentum, ACL-Einträge, Fähigkeiten und die Identität jedes Prozesses, der den Pfad verwendet, bleiben Fakten, die aus der tatsächlichen Umgebung gewonnen werden müssen.
Weltbeschreibbar bedeutet, dass die Klasse „others“ w hat – das Oktalmuster 0002 und warum -perm -0002 es unabhängig von anderen Bits findet
Der Wert 0002 isoliert das andere Schreibbit. Im gewöhnlichen Drei-Klassen-Layout gehört die letzte Ziffer allen Personen außerhalb der Besitzer- und Gruppenklassen, und ihre Schreibkomponente hat das Gewicht 2. Ein vollständiger Modus, der dieses Bit enthält, zeigt daher w in der anderen Klasse an, obwohl der Rechner solche Modi nicht selbst findet.
Ob ein bestimmter Suchausdruck eine exakte, alle Bit- oder beliebige Bitübereinstimmung bedeutet, gehört zur Suchdokumentation, nicht zu diesem Konverter. Geben Sie stattdessen einen resultierenden Modus an. Beispielsweise wird 0666 zu rw-rw-rw-, während 0644 zu rw-r--r-- wird; Der Unterschied ist in der Gruppe und anderen Schreibpositionen sichtbar, ohne dass dies bedeutet, dass einer der Modi für einen bestimmten Pfad geeignet ist.
0002 macht das andere Schreibbit verfügbar; Passende Semantiken finden sind extern
Die führende Sonderbitziffer verwendet 4 für Setuid und 2 für Setgid. Somit kombiniert 4755 setuid mit gewöhnlichen 755-Berechtigungen, während 2755 setgid mit denselben nachgestellten Bits kombiniert. Der Rechner stellt diese Masken separat zur Verfügung und platziert ihre symbolischen Buchstaben beim Rendern des vollständigen Modus an der Position „Besitzer“ oder „Gruppe ausführen“.
Der Fall enthält nützliche Beweise. Wenn setuid die Eigentümerausführung begleitet, zeigt die Eigentümerausführungsposition s an; Ohne Ausführung wird S angezeigt. Setgid folgt der gleichen Regel in der Gruppenposition. Diese Ausgänge dekodieren eine bereitgestellte Ganzzahl, prüfen jedoch kein Programm, ermitteln seinen Besitzer, führen es nicht aus und entscheiden nicht, ob ein spezielles Bit gerechtfertigt ist.
4000 und 2000 dekodieren als setuid und setgid, ohne Binärdateien zu prüfen
Die Syntax der Berechtigungssuche muss von der Berechtigungsarithmetik getrennt gehalten werden. Der Rechner akzeptiert einen oktalen oder neunstelligen Symbolmodus und gibt einen Zwölf-Bit-Wert zurück. Es gibt keine Darstellung für einen Suchoperator, ein Pfadprädikat oder eine Übereinstimmungsregel, sodass eine Abfrage im exakten Modus und eine Abfrage mit allen erforderlichen Bits innerhalb dieser Schnittstelle nicht unterschieden werden können.
Dekodieren Sie den Modus aus jedem externen Suchergebnis, anstatt den Suchausdruck einzufügen. Die drei gewöhnlichen Ziffern sind Eigentümer, Gruppe und Andere zugeordnet, während eine optionale führende Ziffer setuid, setgid und sticky zugeordnet ist. Dieser Workflow überprüft die gemeldeten Bits, überlässt jedoch die Suchabdeckung und die passende Semantik dem Tool, das die Liste erstellt hat.
Genaue, All-Bit- und Any-Bit-Suchmodi erfordern eine Suchdokumentation
Angenommen, eine an anderer Stelle durchgeführte Prüfung meldet 0666 und 4755. Die Eingabe von 0666 ergibt rw-rw-rw-, wodurch other-write im letzten Tripel sichtbar wird. Die Eingabe von 4755 ergibt rwsr-xr-x: Der Besitzer hat Lese-, Schreib- und Ausführungsrechte, und setuid ersetzt das Ausführungszeichen des Besitzers durch Kleinbuchstaben s, da dieses Ausführungsbit vorhanden ist.
Ein zweiter Treffer wie 4644 zeigt, warum die symbolische Form wichtig ist. Es gibt rwSr--r-- aus, wobei das große S setuid anzeigt, während die Ausführung durch den Besitzer fehlt. Der Rechner kann diese Inkonsistenz auffällig machen. Es ist immer noch nicht möglich, den Pfad zu identifizieren, festzustellen, wem er gehört, seinen Inhalt zu überprüfen oder die Entfernung des Bits zu empfehlen.
Arbeitsbeispiel: Decodieren Sie bereitgestellte Audit-Treffer, ohne Pfade zu scannen
Repariert nicht jeden ungewöhnlichen Modus automatisch. Ein Modus ist nur eine Eingabe für eine Entscheidung, die auch vom Ziel, Eigentümer, der Gruppe und der erforderlichen Operation abhängt. Die Seite erhält bewusst nichts von diesem Kontext. Die Befehlsvorschau besteht aus inaktivem Text, und selbst ein korrekt zitierter Pfad wird vom Browser nicht geöffnet oder überprüft.
Bevor Sie einen gemeldeten Modus ändern, vergleichen Sie die aktuellen und vorgeschlagenen Werte Stück für Stück. Das Entfernen von other-write aus 0666 erzeugt 0664; Das Entfernen von setuid aus 4755 erzeugt 0755. Diese arithmetischen Fakten sind reproduzierbar, aber ob eine der beiden Änderungen die Arbeitsbelastung bewahrt, erfordert lokale Beweise, die über den Taschenrechner und die exemplarische Vorgehensweise in Artikel 501 hinausgehen.
Ausnahmen und Behebung erfordern lokale Eigentums- und Arbeitslastnachweise
Mehrere relevante Prüfungsdimensionen fehlen. Die Route fragt keine ACL-Einträge, Dateifunktionen, Eigentümer, beschreibbare Pfadkomponenten, Bereitstellungsverhalten oder obligatorische Richtlinien ab. Außerdem wird keine Suche ausgeführt, kein PATH überprüft und kein Speicher durchsucht. Eine saubere Konvertierung besagt also nur, dass die angegebene Zahl und die angezeigten Buchstaben übereinstimmen.
Halten Sie diese Grenzen in jedem Bericht sichtbar. Zeichnen Sie neben dem dekodierten Modus auch den Pfad und die Erfassungsmethode auf und untersuchen Sie dann Identitäten und zusätzliche Zugriffsmechanismen mit geeigneten externen Tools. Der Rechner eignet sich hervorragend zur Notationsprüfung, da er ungültige Oktalziffern ablehnt und Sonderbits offenlegt. Es handelt sich nicht um einen Dateisystem-Scanner oder eine Sanierungs-Engine.
Fazit: Kennen Sie Ihre beschreibbaren und privilegierten Dateien – und verwenden Sie den Chmod-Rechner, um jeden verdächtigen Modus zu übersetzen, bevor Sie ihn ändern
Eine nützliche Berechtigungsprüfung trennt Entdeckung und Interpretation. Lassen Sie einen externen, dokumentierten Prozess Kandidatenpfade sammeln und verwenden Sie dann den Rechner, um jeden zurückgegebenen Modus in explizite Klassenberechtigungen zu übersetzen. Überprüfen Sie die optionale Sonderbit-Ziffer genauso sorgfältig wie die folgenden drei, da 0755, 2755 und 4755 normale Berechtigungen teilen, aber unterschiedliche Zwölf-Bit-Werte beschreiben.
Schließen Sie mit einer knappen Schlussfolgerung ab: Welche Eigentümer-, Gruppen-, andere und spezielle Bits der bereitgestellte Modus enthält. Verwandeln Sie diese Arithmetik nicht in eine unbegründete Behauptung über die Gefährdung oder erforderliche Richtlinien. Der Rechner hilft Rezensenten, verdächtige Modi genau zu erkennen; Das Live-System muss Eigentums-, Arbeitslast- und Durchsetzungsnachweise liefern, bevor jemand sie ändert.