
저는 rsync
장애 조치 서버의 여러 폴더를 미러링하는 데 사용합니다. 그러나 축소판 그림이나 전체 텍스트 색인과 같은 일부 파일은 웹 사용자('nobody'라는 이름)의 애플리케이션에 의해 생성되며 기본적으로 제한적인 권한이 설정되어 있습니다.
또한 루트 액세스가 비활성화된 SSH를 통해 이 작업을 수행하고 있으며 가능하다면 그렇게 유지하고 싶습니다.
rsync에 sudo로 실행하도록 지시할 수 있는 합리적인 방법이 있나요? 아니면 파일 권한 변경을 조사해야 합니까?
답변1
당신은 할 수 있습니다:
- rsync를 통해 읽어야 하는 데이터에 대한 새 그룹을 생성하고 해당 그룹에 UID를 추가하거나 파일 및 디렉터리의 GID를 변경하고 적절한 권한을 설정하면 해당 사용자 이름으로 rsync를 사용할 수 있습니다.
- rsync-over-ssh를 사용할 때 서버 측에서 정확한 명령줄을 실행하고(힌트, -v를 여러 번 사용하고 명령줄에서 '-v'를 꺼내는 것을 기억하세요) SSH 공개 키 인증을 사용하여 특정 명령(sshd(8)의 AUTHORIZED_KEYS FILE FORMAT 참조)
#2를 사용하면 ssh를 통해 루트 사용자에게 rsync를 사용할 수 있고 여전히 안전할 수 있습니다(sshd_config(5)의 PermitRootLogin no-password 참조). 또는 더 나은 방법으로 두 가지를 결합하여 사용할 수 있는 권한 없는 사용자를 생성할 수 있습니다. 해당 특정 rsync 명령줄을 사용하세요.
편집: 루트를 얻기 위해 ssh를 통해 인증 데이터를 보내는 것(예: 사용자로 ssh, 사용자 비밀번호로 sudo)은 루트 사용자에게 직접 ssh를 수행하는 것(공개 키 또는좋은비밀번호), IMHO.
답변2
--rsync-path
다음을 통해 원격 rsync 명령으로 실행할 항목을 지정할 수 있습니다 .
rsync --rsync-path='sudo rsync' --blah --blah /src blah@dest:/dst
답변3
당신은 또한 사용할 수 있습니다rsync 데몬. 하지만 여기서 설명한 방식을 사용하면 rsync 데몬을 실행하는 시스템의 누구든지 모듈 이름에 액세스할 수 있습니다.
나는 그것에 대해 깊이 조사하지는 않았지만 이 방법으로 안전한 공개 키 기반(따라서 비밀번호가 없는) 설정을 만들 수 없었습니다. 하지만, 있을 수도 있습니다.