사용자에게 CAP_MKNOD 기능을 제공하는 방법은 무엇입니까?

사용자에게 CAP_MKNOD 기능을 제공하는 방법은 무엇입니까?

이 질문에서 계속 :rsync와 특수 파일의 관계

장치 파일을 백업하려면 대상의 rsync가 이를 호출할 수 있어야 합니다 mknod. 일반적인 방법은 rsync에 로그인 root하고 스위치를 사용하도록 지시하는 것입니다 --super. (예를 들어 rsync -avz --super ./this root@thatserver:/backup/this)

특별히 rsync 프로세스가 루트로 로그인되는 것을 원하지 않습니다.

에 따르면' man mknod':

EPERM(오류)

...그리고 호출자에게는 권한이 없습니다(Linux: CAP_MKNOD 기능 없음)...

루트가 아닌 사용자에게 CAP_MKNOD를 할당할 수 있습니까? 그렇다면 어떻게 해야 할까요?

답변1

바이너리에 기능을 추가할 수 있습니다. 예 /bin/rsync를 들어, 사용자의 홈 디렉터리에 원격으로 복사하고 /home/user/rsync이를 개별적으로 실행 가능하게 만들려면 다음 기능을 추가하세요.

sudo setcap CAP_MKNOD=ep /home/user/rsync

사용자가 이 rsync를 원격으로 실행하면 장치 노드를 생성할 수 있습니다.

관련 정보