저는 영감을 받아 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
s에 대한 구문 지원을 추가했습니다 . 이 글을 쓰는 시점에서는,pam_cap.so
capability.conf
libcap-2.29
libcap
버전은 2.49입니다..
서류도 좀 있고pam_cap.so
여기.
답변2
당신이 하고 싶은 일은 불가능합니다. 상속 가능한 능력을 조작할 뿐만 아니라 pam_cap
(따라서 실제로 허용되거나 효과적인 능력을 전혀 부여하지 않음) 그룹이 아닌 사용자만 처리합니다(기본 그룹도 아님).
답변3
Capability.conf를 그룹에 직접 할당할 수 있다는 문서를 찾을 수 없습니다.
이는 인증 프로세스에서 권한을 "제거"해야 하는 pam_cap의 요구에 따른 인공물인 것 같습니다. 이는 "전체" 기능이거나 그렇게 하기에 충분할 수 있습니다. 이는 매핑을 누적적으로 축적하는 경향을 만들어내며 이는 빠르게 "검사할 수 없는 구조"가 될 수 있으므로 현명하지 못한 것처럼 보입니다. 따라서 Capability.conf를 통한 할당은 누적되지 않습니다. 당신이 성냥을 치면, 그것이 당신이 얻는 것입니다. 그 이상도 이하도 아닌.
이렇게 말해보세요:
pam_cap은 /etc/security/capability.conf 형식의 모든 파일에서 기능을 로드하도록 구성할 수 있습니다.
pam 구성에서 스크립트를 사용할 수 있습니다. 인증된 사용자의 그룹 멤버십을 기반으로 사용자에 대한 사용자별 Capability.conf 파일을 생성하고 이를 pam_cap 모듈에 제공하는 것은 매우 간단합니다.
"우아함" 또는 "이상적"은 아니지만 대규모 LDAP 유형 사용자 그룹의 경우 유효한 사용자와 단일 /etc의 각 사용자에 대한 전체 텍스트 항목 간의 "계층 8 젤리웨어를 통한 동기화"보다 쉬울 수 있습니다. /security/capability를 확인하십시오. conf.