갖는 예상대로 rsync를가 UID 및 GID를 설정하지 않는 문제를 , 내 직감은 즉 rsync
으로 실행해야 root
대상 컴퓨터에.
root
보안상의 이유로 비활성화되어 있기 때문에 SSH 를 통해 로그인 할 수 없습니다 . 대상 컴퓨터의 사용자가 사용할 수 있습니다 sudo
.
rsync
와 함께 사용할 수 sudo
있습니까?
갖는 예상대로 rsync를가 UID 및 GID를 설정하지 않는 문제를 , 내 직감은 즉 rsync
으로 실행해야 root
대상 컴퓨터에.
root
보안상의 이유로 비활성화되어 있기 때문에 SSH 를 통해 로그인 할 수 없습니다 . 대상 컴퓨터의 사용자가 사용할 수 있습니다 sudo
.
rsync
와 함께 사용할 수 sudo
있습니까?
답변:
대상 컴퓨터에서
rsync
.which rsync
/etc/sudoers
파일을 편집하십시오 sudo visudo
(참조 : visudo를 사용해야합니까? ).<username> ALL=NOPASSWD:<path to rsync>
. 여기서 username 은 rsync가 로그온하는 데 사용할 사용자의 로그인 이름입니다. 해당 사용자는 사용할 수 있어야합니다sudo
그런 다음 소스 머신에서 다음을 사용하도록 지정하십시오 sudo rsync
.
rsync ... --rsync-path="sudo rsync" ...
NOPASSWD
대상 컴퓨터에서 사용하지 않고 사용 하면 메시지가 표시됩니다
sudo : tty가없고 askpass 프로그램이 지정되지 않았습니다.
-e="ssh -i $PRIVATE_KEY_PATH" --rsync-path="sudo rsync"
/etc/sudoers
이 파일의 끝 부분에 오게 (또는 동일한 사용자에게 영향을 줄 수있는 그룹 규칙 이후) 나에게 문제가 해결 되었는지 확인하십시오 .
<username> ALL=NOPASSWD:<path to rsync> <args>
하지만 원격으로 호출 할 때 인수가 무엇인지 알 수 없습니다. 어떤 아이디어?
원격 sudo가 X-windows를 통해 비밀번호를 묻도록 할 수 있습니다. 이를 수행하는 방법은 다음과 같습니다.
ssh-askpass
원격 호스트에 설치되어 있는지 그리고 물론 X-windows를 사용하고 있는지 확인하십시오./etc/sudo.conf
.# Path to askpass helper program
Path askpass /usr/bin/ssh-askpass
rsync에 다음 옵션을 추가하십시오. -e "ssh -X" --rsync-path="sudo -A rsync"
ssh -X
X-windows 정보와 포트를 원격 세션으로 전달합니다sudo -A
sudo에서 ssh-askpass를 사용하여 비밀번호를 묻습니다.