이미 실행중인 프로세스에는 SO_RCVBUFFORCE 소켓 옵션 사용과 같은 권한있는 명령이 필요합니다. 이 프로세스는 일반 사용자 프로세스로 실행 중입니다.실행중인 프로세스에 기능 부여
이 프로세스에 권한/권한을 부여하는 방법은 무엇입니까? 파일 기반 기능 설정은 여전히 꿈입니까?
나는 libcap 패키지에서 /usr/sbin/setpcaps
유틸리티와 cap_set_proc()
API를 시도하지만, CAP_SETPCAP
기능은 시스템 (2.6.20 커널과 페도라 4 기반의 레거시 시스템)에 차단, 그래서 기능을 제거/부여 할 수 없습니다 그 때 그때 그때 각자 과정을 위해.
임시 루트 uid를 해당 프로세스에 설정하는 것에 대한 생각은 있지만 이미 실행중인 외부 프로세스의 유효 UID를 변경하는 방법이 있습니까? setuid()
/seteuid()
/... 함수는 현재 프로세스 (누가 함수를 호출하는지)를 수정할 수 있습니다.
CAP_SETPCAP을 사용하는 경우 cap_set_proc() 프로세스에 새 기능을 추가 할 수 있습니다. – CsTamas
나는이 해결책을 지적하면서이 대답을 받아 들인다 : 데몬을 가지고 있고 파일 기술자 전달을 사용하여 소켓을 전달한다. (http://lists.canonical.org/pipermail/kragen-hacks/2002- January/000292.html), fork() + exec()를 사용하여 각 요청에 대해 시작된 유틸리티 (setuid 플래그로 실행 가능)를 소켓 설명자를 상속 받도록하십시오 – CsTamas