Linux & Shell

capability 디코딩비트의 이름과 의미 확인

16진수 하나 또는 /proc Cap 필드 한 줄을 넣고, 설정된 능력을 읽거나 체크박스로 조합을 바꿉니다.

capability 디코딩

이름으로 비트 선택

유효한 결과가 있어야 선택할 수 있습니다. 한 비트의 변경을 미리 보여 주며 이름 없는 비트는 유지합니다.

디코딩 결과

붙여 넣은 값은 브라우저 안에서만 처리하며 시스템을 읽거나 서버로 보내지 않습니다.

이름 표 및 내보내기

고정된 UAPI 이름 표입니다. 실행 중인 커널을 감지하거나 권한 검사를 재현하지 않습니다.

결과가 오래되었습니다. 다시 해독한 뒤 비트를 변경하거나 내보내세요.

capability 디코딩은 프로세스 정보에 긴 16진수만 표시될 때 이름과 위치를 확인하는 데 쓰입니다. CapEff와 CapBnd가 같은 값이더라도 서로 다른 집합이므로 원래 필드 이름을 함께 보관하세요.

예제에는 이름이 있는 비트 14개가 켜져 있습니다. 내 컴퓨터의 권한을 읽은 값이나 모든 컨테이너의 공통 기본값이 아닙니다. 리눅스 capabilities를 확인할 때는 수치의 출처가 먼저입니다.

capability 디코딩으로 확인할 차이

숫자 자체와 이름 표의 해석을 따로 살펴봅니다.

선택한 위치를 이름과 연결

capability 디코딩은 켜진 비트마다 CAP_* 이름과 짧은 설명을 보여 줍니다. 체크박스를 누르면 바뀔 한 비트와 전후 마스크가 먼저 나오며, 적용하기 전에는 원본을 바꾸지 않습니다.

비트마스크가 능력 카드와 연결되고 설정된 위치가 강조된 모습

구버전 표에서도 새 비트 보존

3.16 표에서는 알 수 없던 위치가 5.9 표에서는 이름을 얻을 수 있습니다. 표를 바꿔도 원래 숫자는 유지됩니다. 63번까지의 비트를 보존하므로 이름이 없다는 이유로 정보가 사라지지 않습니다.

같은 비트 배열을 두 이름 표로 해석하여 이름 없는 비트가 식별되는 모습

필드, 표, 변경 내용을 순서대로 확인

01

한 집합씩 입력

CapEff: 0000000000000003처럼 필드 한 줄을 쓰거나 숫자만 넣을 수 있습니다. 숫자로만 된 10도 16진수이므로 10진수로는 16입니다. 여러 Cap 집합을 한 번에 합치지 않습니다.

02

표의 마지막 번호 확인

3.16은 37번, 5.8은 39번, 5.9는 40번까지 이름이 있습니다. 이 선택은 UAPI 사전을 고르는 기능이며 실제 커널 감지가 아닙니다. 배포판의 백포트 여부는 대상 환경에서 확인해야 합니다.

03

미리보기 후 적용

유효하고 최신인 결과에서만 체크박스를 쓸 수 있습니다. 적용은 입력과 결과를 함께 갱신하고, 되돌리기는 원래 라벨과 문자열까지 복원합니다. 수동 해독에는 Ctrl/Cmd + Enter를 사용할 수 있습니다.

정확한 숫자와 해석 가능한 능력 목록

전체 64비트 처리

16진수 비트마스크를 부호 없는 정수로 계산합니다. 출력은 소문자 16진수 16자리와 2진수 64자리로 맞춥니다. JSON의 마스크와 10진수는 문자열이므로 큰 값이 반올림되지 않습니다.

번호와 설명 함께 보기

인식한 능력에는 번호와 용도 요약이 붙습니다. CAP_NET_BROADCAST는 현재 사용하지 않는 능력으로 표시합니다. 표에 없는 위치는 이름을 추측하지 않고 별도의 숫자 목록으로 보여 줍니다.

출처가 남는 보고서

보고서는 이름 표 버전과 CapEff 등의 원본 필드 이름을 보관합니다. capsh 결과와 대조할 때도 어떤 집합인지 확인할 수 있습니다. 텍스트 출력은 분석 자료이며 setcap 명령에 넘기는 표현식이 아닙니다.

입력 제한과 해석 범위

부호 없는 16진수만 허용
ASCII 16진수 1~16자리, 선택적 0x 또는 0X 접두사와 앞뒤 공백을 허용합니다. 전체 입력은 UTF-16 코드 단위 256개까지입니다. 부호나 구분 기호, 초과 자릿수는 잘라내지 않고 오류로 처리합니다.
필드 하나만 처리
CapInh, CapPrm, CapEff, CapBnd, CapAmb 뒤에 콜론을 붙일 수 있습니다. 전체 status 파일, 여러 내용 줄, 능력 이름 목록, +ep 식은 거부합니다. PID 조회나 파일·URL 가져오기는 없습니다.
실제 권한을 모의 실행하지 않음
execve, 사용자 네임스페이스, securebits, seccomp, LSM의 상호작용은 계산하지 않습니다. 마스크 하나만으로 최소 권한이나 컨테이너의 특권 상태와 안전성을 판정할 수 없습니다.
이름 없는 비트는 그대로 유지
이름이 있는 위치만 체크박스로 변경합니다. 나머지 설정된 위치는 마스크와 보고서에 남습니다. 전체 선택, 이름 없는 비트 삭제, 권한 부여 명령 생성 기능은 제공하지 않습니다.
오래된 결과 내보내기 방지
입력이나 표를 바꾸면 복사와 다운로드가 즉시 잠깁니다. 자동 해독은 350ms 후 실행되며 끄면 대기 작업이 취소됩니다. 예제, 비우기, 비트 변경은 미리보기 후 적용하고 한 번 되돌릴 수 있습니다.

capability 디코딩 질문

프로세스의 capabilities는 어떻게 확인하나요?

대상 Linux 호스트의 /proc/PID/status에서 Cap 필드를 읽거나 사용 가능한 getpcaps를 이용하세요. 여기에는 그중 한 줄만 붙여 넣습니다. 브라우저에서 원격 프로세스 상태를 읽거나 계속 추적하지는 않습니다.

프로그램에 필요한 능력을 어떻게 찾나요?

현재 보유한 집합이 반드시 필요한 최소 집합은 아닙니다. 프로그램 문서와 수행 작업을 검토하고 통제된 환경에서 대표적인 작업을 관찰해야 합니다. 이 도구는 시스템 호출을 추적하거나 최소 권한을 추천하지 않습니다.

permitted 능력이 항상 effective인 것은 왜 아닌가요?

permitted는 스레드가 effective에 넣을 수 있는 능력의 상한입니다. 실제 능력 검사는 effective를 사용합니다. 따라서 스레드는 permitted 능력을 유지하면서도 현재 활성화하지 않을 수 있습니다.

능력 표현식에서 ep는 무슨 뜻인가요?

libcap의 p는 permitted를, e는 effective 상태를 나타냅니다. 파일 능력에는 실행 규칙에 영향을 주는 effective 플래그가 있습니다. cap_net_raw+ep는 단일 16진수 집합이 아니므로 이 입력 형식에는 맞지 않습니다.

capsh 결과가 다른 프로세스의 플래그와 왜 다르죠?

capsh --print는 capsh가 실행되는 문맥을 보여 줍니다. 다른 프로세스는 해당 PID의 status 등을 확인해야 합니다. 파일 능력과 스레드 집합을 구별하고, 설치된 libcap이 새 능력 이름을 아는지도 확인하세요.

더 궁금한 점이 있나요?

다음 마스크 확인

capability 디코딩으로 원본 필드를 보관하고 이름이 있는 능력과 없는 위치를 대조한 뒤, 확인한 보고서를 내보내세요.

값을 해독했다는 사실은 안전한 권한 설정을 보증하지 않습니다.