capsudo - 객체 권한 모델로 설계된 미니멀 sudo 대체제
(github.com/kaniini)- 전통적인 sudo/doas의 사용자·규칙 기반 권한 모델 대신 객체 권한 모델(Object-Capability Model) 을 적용해 권한 위임을 단순화
- 권한을 설정 파일이 아니라 소켓 자체가 곧 능력(capability) 이 되는 구조로 표현
-
capsudod가 특정 명령을 실행할 수 있는 권한 소켓을 생성하고 대기 -
capsudo는 해당 소켓에 접근해 사전에 바인딩된 명령만 실행 가능
-
- 소켓의 파일 권한(소유자·그룹·모드) 만으로 누가 무엇을 실행할 수 있는지 명확히 제어
- 사용자·명령 매칭 규칙, 파서, 복잡한 정책 언어 없이 Unix 권한 모델에 자연스럽게 결합
- 특정 사용자에게 reboot만 허용하는 등 단일 목적 권한 위임에 특히 적합
# capsudod -s /home/user/reboot-capability reboot & # chown user:user /home/user/reboot-capability && chmod 700 /home/user/reboot-capability $ capsudo -s /home/user/reboot-capability - Alpine Linux 같은 미니멀 시스템 환경에서 sudo/doas 대안으로 사용하기 용이
- “누가 실행할 수 있는가”보다 “누가 이 capability를 소유하는가” 에 초점을 둔 설계