이 질문에서 계속 :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를 원격으로 실행하면 장치 노드를 생성할 수 있습니다.