Linux & Shell

Декодирование capabilitiesот битов к именам

Вставьте шестнадцатеричную маску или одну строку Cap из /proc. Изучите установленные биты или подготовьте новую комбинацию флажками.

Декодирование capabilities

Составить маску по именам

Сначала декодируйте корректное значение. Каждый флажок открывает просмотр изменения одного бита; биты без имён сохраняются.

Расшифрованные capabilities

Вставленное значение обрабатывается в браузере. Инструмент не читает вашу систему и не отправляет ввод на сервер.

Интерпретация и экспорт

Фиксированные таблицы UAPI: без определения вашего ядра и моделирования проверок доступа.

Результат устарел. Перед изменением битов или экспортом повторите декодирование.

Декодирование capabilities полезно, когда состояние процесса содержит длинное шестнадцатеричное число. Сохраните рядом с ним CapEff или CapBnd: одинаковые значения могут относиться к наборам с разной ролью в модели полномочий.

В примере установлены 14 известных capabilities. Это иллюстрация записи, а не измерение прав вашего компьютера и не универсальная конфигурация контейнера. Привилегии Linux нужно рассматривать вместе с источником поля.

Декодирование capabilities с сохранением всех битов

Имя зависит от таблицы, исходное число — нет.

Связь между позицией и возможностью

Декодирование capabilities сопоставляет установленному биту имя CAP_* и краткое описание. Изменение флажка сначала показывает один затронутый бит и обе маски. До применения исходный текст остаётся прежним.

Битовая маска соединена с карточками capabilities, установленные позиции выделены

Новые позиции в старом справочнике

Бит без имени в таблице 3.16 может получить имя в таблице 5.9. При переключении число не меняется. Все позиции до 63 включительно сохраняются: отсутствие имени не означает, что этот бит можно отбросить.

Одинаковые биты в двух таблицах имён: ранее безымянный бит становится известным

Проверьте поле, таблицу и предполагаемое изменение

01

Один набор за один раз

Подходит отдельное значение или строка CapEff: 0000000000000003. Ввод только из цифр тоже шестнадцатеричный: 10 означает 16 в десятичной записи. Другие наборы разбирайте отдельно.

02

Выберите версию справочника

Таблицы 3.16, 5.8 и 5.9 заканчиваются на битах 37, 39 и 40. Это фиксированные снимки UAPI, а не определение работающего ядра. Обратные переносы изменений в дистрибутив нужно проверять на целевой системе.

03

Сначала просмотрите замену

Флажки доступны лишь для актуального корректного результата. Применение одновременно обновляет ввод и отчёт; отмена возвращает исходную строку с меткой поля. В ручном режиме работает Ctrl/Cmd + Enter.

Точные числа и понятные записи

Полная 64-битная маска

Битовая маска обрабатывается как беззнаковое целое. Вывод содержит 16 шестнадцатеричных цифр в нижнем регистре и 64 двоичных цифры. Маска и десятичное значение в JSON представлены строками, чтобы большие числа не округлялись.

Номер и краткое назначение

Для известных capabilities показаны номер бита и пояснение. CAP_NET_BROADCAST явно отмечена как неиспользуемая. Позиции за пределами справочника выводятся отдельно, без придуманных имён и автоматической оценки риска.

Отчёт сохраняет происхождение

Текст и JSON включают версию таблицы, необязательное поле CapEff либо другую распознанную метку и все установленные позиции. Это помогает сравнить результат с capsh. Текстовый отчёт — данные для анализа, а не готовый аргумент setcap.

Синтаксис и пределы выводов

Только беззнаковый hex
Допустимы 1–16 цифр ASCII, необязательные 0x/0X и внешние пробельные символы. Общий предел — 256 кодовых единиц UTF-16. Знаки, разделители и переполнение вызывают ошибку: основание не угадывается, биты не обрезаются.
По одному полю
Поддерживаются CapInh, CapPrm, CapEff, CapBnd и CapAmb с двоеточием. Полный status, несколько содержательных строк, списки имён и выражения +ep отклоняются. Импорта PID, файлов или URL нет.
Без моделирования проверок доступа
Инструмент не воспроизводит execve, пространства имён, securebits, seccomp или LSM. По одной маске нельзя установить минимальные права программы, привилегированный режим контейнера или его безопасность. Описания дают лишь краткий контекст.
Неизвестные биты не удаляются
Изменять можно только именованные позиции. Остальные установленные биты остаются в числе и отчёте даже при выборе старой таблицы. Нет выбора всех capabilities, очистки неизвестных битов и генерации команд выдачи прав.
Экспорт только актуального результата
Изменение ввода или таблицы сразу блокирует копирование и загрузку. Автоматический режим ждёт 350 мс; его отключение отменяет ожидающий запуск. Пример, очистка и смена бита требуют просмотра и применения, после чего доступна одна отмена.

Декодирование capabilities: вопросы

Как посмотреть capabilities процесса?

На целевом Linux-хосте прочитайте поля Cap в /proc/PID/status либо используйте getpcaps, если он доступен. Сюда вставьте одну строку. capsh --decode позволяет локально расшифровать hex, а этот браузерный инструмент не читает процессы.

Как узнать, какие capabilities нужны программе?

Имеющийся набор не обязательно является минимально необходимым. Изучите документацию и операции программы, наблюдайте характерную нагрузку в контролируемой среде. Декодер не трассирует вызовы и не предлагает минимальный набор выдаваемых прав.

Почему разрешённые capabilities не всегда эффективны?

Permitted ограничивает набор capabilities, которые поток может включить в Effective. Проверки capabilities используют именно эффективный набор. Поэтому поток может сохранять разрешённую capability, не активируя её в данный момент.

Что означает ep в выражении capabilities?

В записи libcap p относится к Permitted, а e — к эффективному состоянию. У файловых capabilities есть эффективный флаг, участвующий в правилах выполнения. cap_net_raw+ep не является одной hex-маской и здесь не принимается.

Почему capsh показывает другие флаги, чем проверяемый процесс?

capsh --print описывает контекст, в котором запущен сам capsh. Для другого процесса нужен его status или подходящий инструмент. Также различайте файловые capabilities и наборы потока; старая libcap может не знать новых имён.

Остался вопрос?

Проверьте следующую запись

Декодирование capabilities сохраняет исходную метку поля. Сопоставьте известные имена и безымянные позиции, затем экспортируйте проверенный отчёт.

Правильное прочтение числа не гарантирует безопасную настройку.