Linux & Shell

Capability-Maske dekodierenBits und Namen abgleichen

Einen Hexwert oder eine einzelne Cap-Zeile einfügen. Gesetzte Fähigkeiten lesen oder über Kontrollkästchen eine neue Maske vorbereiten.

Capability-Maske dekodieren

Maske aus benannten Bits bilden

Erst einen gültigen Wert dekodieren. Jede Auswahl zeigt eine Änderungsvorschau für ein Bit; unbenannte Bits bleiben erhalten.

Dekodierte Fähigkeiten

Der eingefügte Wert bleibt im Browser. Das Werkzeug liest weder Ihr System aus noch sendet es Eingaben an einen Server.

Interpretation und Export

Feste UAPI-Namenstabellen; keine Erkennung Ihres Kernels und keine Simulation seiner Berechtigungsprüfungen.

Das Ergebnis ist veraltet. Vor Änderungen und Export erneut dekodieren.

Capability-Maske dekodieren hilft, wenn ein Prozessbericht nur eine lange Hexzahl liefert. Lassen Sie CapEff oder CapBnd vor dem Wert stehen: Gleiche Zahlen können verschiedene Mengen innerhalb des Berechtigungsmodells bezeichnen.

Das Beispiel enthält 14 benannte Fähigkeiten. Es zeigt die Schreibweise und ist weder eine Messung Ihres Rechners noch eine allgemeingültige Containerkonfiguration. Bei Linux-Capabilities gehört die Herkunft des Wertes zur Interpretation.

Capability-Maske dekodieren mit nachvollziehbaren Bits

Die Zahl bleibt erhalten, auch wenn eine andere Tabelle ihre Namen erklärt.

Vom gesetzten Bit zur Fähigkeit

Capability-Maske dekodieren ordnet jeder gesetzten Position einen CAP_*-Namen und eine kurze Erklärung zu. Ein Klick auf ein Kontrollkästchen zeigt zuerst genau das eine geänderte Bit sowie die alte und neue Maske.

Eine Bitmaske ist mit Fähigkeitskarten verbunden; gesetzte Positionen sind hervorgehoben

Neue Bits mit einer alten Tabelle lesen

In der Tabelle 3.16 können Positionen unbenannt bleiben, die 5.9 bereits kennt. Beim Wechsel bleibt die gesamte Zahl unverändert. Auch unbenannte Positionen bis Bit 63 werden weder verworfen noch stillschweigend auf null gesetzt.

Dasselbe Bitmuster in zwei Namenstabellen, wobei ein zuvor unbenanntes Bit erkannt wird

Quelle und Tabellenstand zuerst prüfen

01

Nur ein Feld übernehmen

Ein nackter Hexwert oder eine Zeile wie CapEff: 0000000000000003 ist zulässig. Auch 10 wird hexadezimal gelesen und ergibt dezimal 16. Mehrere Mengen benötigen getrennte Auswertungen.

02

Die passende Namenstabelle wählen

Die Tabellen für 3.16, 5.8 und 5.9 enden bei Bit 37, 39 und 40. Sie bilden feste UAPI-Namen ab. Der laufende Kernel wird nicht ermittelt; Rückportierungen einer Distribution können davon abweichen.

03

Änderungen vor dem Anwenden ansehen

Kontrollkästchen stehen nur bei einem aktuellen gültigen Ergebnis bereit. Anwenden aktualisiert Quelle und Bericht gemeinsam. Rückgängig stellt die ursprüngliche Eingabe samt Feldnamen wieder her; manuell startet auch Strg/Cmd + Enter die Auswertung.

Vollständige Zahlen und lesbare Fähigkeiten

Ohne Rundung über 64 Bit

Eine hexadezimale Capability-Maske wird als vorzeichenloser Ganzzahlwert behandelt. Das Ergebnis hat 16 kleine Hexziffern und 64 Binärziffern. JSON verwendet für Maske und Dezimalwert Zeichenketten, damit große Werte exakt bleiben.

Nummer und Bedeutung nebeneinander

Für erkannte Fähigkeiten erscheinen Bitnummer und Kurzbeschreibung. CAP_NET_BROADCAST wird als unbenutzt ausgewiesen. Außerhalb der Namenstabelle liegende gesetzte Bits werden als Positionen aufgeführt; das Werkzeug erfindet dafür keine Namen.

Die Menge bleibt im Bericht erkennbar

Text und JSON enthalten Tabellenstand, optionalen Quellfeldnamen und sämtliche gesetzten Bits. Das erleichtert den Abgleich mit capsh. Der Textbericht ist ein Datenformat für die Prüfung und kein direkt ausführbares setcap-Argument.

Zulässige Eingaben und Grenzen der Aussage

Ein vorzeichenloser Hexwert
Erlaubt sind 1–16 ASCII-Hexziffern, optional mit 0x/0X und äußerem Leerraum. Insgesamt sind 256 UTF-16-Codeeinheiten zulässig. Vorzeichen, Trenner und überlange Werte führen zu Fehlern; es gibt keine automatische Basiswahl oder Kürzung.
Fünf bekannte Feldnamen
CapInh, CapPrm, CapEff, CapBnd und CapAmb sind mit Doppelpunkt zulässig. Vollständige status-Dateien, mehrere Inhaltszeilen, Namenslisten und +ep-Ausdrücke werden abgewiesen. PID-, Datei- und URL-Import sind nicht vorgesehen.
Keine Berechtigungssimulation
execve, Namensräume, securebits, seccomp und LSM werden nicht nachgebildet. Aus einer Maske lassen sich weder erforderliche Mindestprivilegien noch ein privilegierter oder sicherer Container ableiten. Die Beschreibungen ersetzen keine vollständige Kernelreferenz.
Unbenannte Bits bleiben erhalten
Nur bekannte Bits lassen sich auswählen. Alle anderen gesetzten Positionen bleiben Bestandteil der Zahl und des Exports, auch mit einer älteren Tabelle. Es gibt weder eine Alles-Auswahl noch das Löschen unbekannter Bits oder die Erzeugung von Vergabebefehlen.
Nur aktuelle Ergebnisse exportieren
Eine Änderung von Eingabe oder Tabelle sperrt den Export sofort. Automatische Auswertung wartet 350 ms; Abschalten verwirft wartende Arbeit. Beispiel, Leeren und Bitänderung benötigen eine Vorschau und lassen sich anschließend einmal rückgängig machen.

Capability-Maske dekodieren: häufige Fragen

Wie prüfe ich die Fähigkeiten eines Prozesses?

Lesen Sie auf dem Zielsystem die Cap-Felder in /proc/PID/status oder verwenden Sie, falls verfügbar, getpcaps. Eine einzelne Zeile kann hier ausgewertet werden. capsh --decode ist eine lokale Alternative zum Übersetzen der Hexmaske; dieses Werkzeug liest keinen Prozess aus.

Wie finde ich heraus, welche Fähigkeiten ein Programm benötigt?

Die vorhandene Menge ist nicht automatisch die minimale erforderliche Menge. Prüfen Sie Dokumentation und verwendete Operationen und beobachten Sie repräsentative Abläufe in einer kontrollierten Umgebung. Der Decoder verfolgt keine Systemaufrufe und erstellt keine Vergabeempfehlung.

Warum sind erlaubte Fähigkeiten nicht immer effektiv?

Permitted begrenzt, welche Fähigkeiten ein Thread in Effective aufnehmen darf. Für Fähigkeitsprüfungen zählt die effektive Menge. Ein Thread kann deshalb eine Fähigkeit behalten, ohne sie gerade effektiv zu aktivieren; Ausführungsübergänge bringen weitere Regeln mit.

Was bedeutet ep in einem Capability-Ausdruck?

Bei libcap steht p für Permitted und e für den effektiven Zustand. Datei-Capabilities haben ein Effective-Flag, das bei der Programmausführung berücksichtigt wird. cap_net_raw+ep ist keine einzelne Hexmaske und wird hier nicht angenommen.

Warum zeigt capsh andere Flags als der betrachtete Prozess?

capsh --print zeigt den Kontext des gestarteten capsh. Für einen anderen Prozess müssen Sie dessen Status oder ein geeignetes Prozesswerkzeug verwenden. Unterscheiden Sie zudem Datei-Capabilities von Thread-Mengen und prüfen Sie die Namenkenntnis Ihrer libcap-Version.

Noch eine Frage?

Die nächste Maske prüfen

Capability-Maske dekodieren hält den Quellfeldnamen fest. Vergleichen Sie benannte und unbenannte Positionen, bevor Sie den geprüften Bericht exportieren.

Eine dekodierte Zahl ist keine Sicherheitsgarantie.