저는 다시 Linux 기능을 가지고 놀고 싶은 마음이 생겼습니다. 제가 가장 좋아하는 프로젝트는 많은 바이너리에서 setuid를 교체하고 루트가 아닌 사용자에게 추가 권한이 있는 유틸리티에 대한 액세스를 제공하는 것입니다. 를 통해 관련 기능( +ei
, 문제는 논쟁의 여지가 있음 +ep
) 을 추가하고 setcap
내 개인 사용자 계정( jdavis4
)을 구성하여 로그인 시 해당 기능이 해당 세션에 할당되도록 함으로써 이를 수행했으며 pam_cap.so
엄청난 속도로 진행되었습니다. Capability.conf를 통해 개별 사용자에게 "ping" 및 "kill"에 대한 액세스 권한을 부여할 수 있습니다.
하지만 제가 겪고 있는 문제는 이것이 프로덕션 시스템이라면 관리자가 각 개별 사용자에 대해 이 작업을 수행할 필요가 없도록 일종의 집계 단위로 기능을 할당하기를 원할 것이라는 생각이 들었습니다. 만들 때마다. 이 방법으로 사용자는 "filesystemAdmin" 그룹에 추가되고 CAP_DAC_OVERRIDE
"ProcessManagement"와 같은 항목을 가져오거나 추가 할 수 있으며 CAP_SYS_NICE
및 CAP_SYS_KILL
.
현재 이것이 가능합니까?
답변1
의 지원 @group
에 구문을 추가했습니다 . 글을 쓰는 시점에서,pam_cap.so
capability.conf
libcap-2.29
libcap
버전 2.49 입니다.
에 대한 몇 가지 문서도 있습니다.pam_cap.so
여기.
답변2
당신이 하고 싶은 일은 불가능합니다. 상속 가능한 기능을 조작 할 뿐만 아니라 pam_cap
(실제로 허용/유효 기능을 전혀 부여하지 않음) 그룹이 아닌 사용자만 처리합니다(기본 그룹도 아님).
답변3
Capability.conf를 그룹에 직접 할당할 수 있다는 내용을 찾을 수 있는 문서가 없습니다.
이는 인증 프로세스에서 권한을 '제거'하기 위해 pam_cap이 필요한 산물인 것 같습니다. 아마도 '모든' 기능이 있거나 그렇게 되기에 충분할 것입니다. 이는 누적된 추가 매핑을 갖는 것이 현명하지 못한 경향을 만들어냅니다. 이는 빠르게 '검사할 수 없는 구조'가 될 수 있기 때문입니다. 따라서 Capability.conf를 통한 할당은 누적되지 않습니다. 성냥에 맞으면 그것이 당신이 얻는 것입니다. 그 이상도 이하도 아닌.
그 말은 다음과 같습니다.
/etc/security/capability.conf 형식의 임의 파일에서 기능을 로드하도록 pam_cap을 구성하는 것이 가능합니다.
pam 구성 내에서 스크립트를 사용할 수 있습니다. 그룹 멤버십을 기반으로 인증 사용자에 대한 사용자별 Capability.conf 파일을 생성하고 이를 pam_cap 모듈에 제공하는 것은 비교적 간단한 일입니다.
'우아함'이나 '이상적'은 아니지만 대규모 LDAP 유형의 사용자 기반의 경우 유효한 사용자 간의 '레이어 8 젤리웨어를 통한 동기화'와 단일 /etc의 사용자별 전체 텍스트 항목보다 더 확인하기 쉽습니다. /보안/capability.conf.