Linux 기능 목록을 얻는 방법

Linux 기능 목록을 얻는 방법

Linux 버전의 실행 프로그램에서 사용할 수 있는 기능 목록을 가져와야 합니다. 사용자가 파일에 부여할 기능을 선택할 수 있도록 하기 위함입니다. 표준 라이브러리를 사용하여 이를 수행할 수 있는 기회가 있습니까? 내가 이 작업을 수행할 수 있었던 유일한 방법은 경계 세트를 보는 것이었지만 cash --print,

  1. 왜 그렇게 말하면서 ...,cap_audit_read,38,39표시 됩니까 ?/usr/include/linux/capability.hCAP_LAST_CAPCAP_AUDIT_READ(37)
  2. 가능하다면 실제로 일부 기능 설명을 사용하겠습니다.

답변1

다음 중 하나 이상입니다.

명령줄:

$ /sbin/capsh --decode=$(grep CapBnd /proc/1/status|cut -f2)

코드( list.c)에서:

#include <stdio.h>
#include <sys/capability.h>

int main(int argc, char **argv) {
  for (cap_value_t c = 0; c < cap_max_bits(); c++) {
    char *name = cap_to_name(c);
    printf("%s\n", name);
    cap_free(name);
  }
}

다음과 같이 컴파일되었습니다.

$ gcc -o list list.c -lcap

최신 버전에는 capshcapsh --explain=주장이 포함되어 있습니다. 예를 들어,

$ /sbin/capsh --explain=cap_chown
cap_chown (0) [/proc/self/status:CapXXX: 0x0000000000000001]

    Allows a process to arbitrarily change the user and
    group ownership of a file.

관련 정보