setcap을 사용할 때 권한은 어디에 저장됩니까?


11

setcap바이너리에 추가 권한을 부여하는 데 사용하면 저장소 또는 메모리의 어딘가에 새로운 권한을 작성해야합니까?

lsof프로세스가 너무 빨리 사라지기 때문에 as를 사용하면 작동하지 않습니다.


다른 프로세스를 사용하십시오. 사본을 만들어이 사본에 /usr/bin/sleep기능을 제공하십시오.
Hauke ​​Laging

답변:


9

설정 한 액세스 제어 목록 setfacl및 설정 한 기능 플래그와 같은 확장 된 권한 은 파일의 inode에서 setcap기존 권한 및 설정 한 setid 플래그와 같은 위치에 저장됩니다 chmod.

(아이 노드는 고정 된 크기로 기존의 허가 비트를위한 공간은 있지만 잠재적으로 제한되지 않은 확장 된 허가를위한 공간이 없기 때문에 실제로 디스크의 별도 블록에 저장 될 수 있습니다. 그 상관 setcap디스크 공간이 부족할 수있다. 그러나 심지어 chmod사용하는 중복 제거하는 시스템의 디스크 공간이 부족할 수 있습니다!)

GNU ls는 파일의 setcap 속성을 표시하지 않습니다. 로 표시 할 수 있습니다 getcap. 모든 확장 된 속성을 getfattr -d -m -;로 나열 할 수 있습니다 . setcap 속성이 호출 security.capability되고이를 getcap디코딩 하는 이진 형식으로 인코딩됩니다 .


4

setcap은 파일 시스템 확장 속성에 저장된 파일 기능을 설정합니다. 이에 대한 설명은 다음과 man 7 capabilities같습니다.

파일 기능 세트는 security.capability라는 확장 된 속성 (setxattr (2) 참조)에 저장됩니다.

에서 CapInh / CapPrm / CapEff 필드를 검사하여 실행중인 프로세스의 기능을 검사 할 수 있습니다 /proc/PID/status. exec에서 기능을 처리하는 방법에 대한 설명은 " setcap 명령으로 기능을 설정하는 방법 "에 대한 내 답변을 참조하십시오 .


capsh --decode =는 사람이 읽을 수있는 데이터를 얻는 데 편리 할 수 ​​있습니다.
Zulgrib
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.