rsync를 사용하여 다른 사용자가 만든 파일 제거


0

문제

다음과 같은 시나리오가 있습니다.

  • 운동 user : group을 사용하여 디렉토리 및 파일을 작성 중입니다. motion:motion 및 권한 755
  • cron 작업으로이 파일들을 원격 컴퓨터에 주기적으로 복사하고 싶습니다. 그들을 삭제하십시오. . 내가 사용하려고하는 명령은

    sudo rsync -avz --remove-source-files /home/pi/Pictures/SecurityCamera/ username@host:/Users/username/Pictures/SecurityCamera

  • 파일은 원격지에 성공적으로 복사 됨 그러나 기계없이 sudo, 로컬 파일은 삭제되지 않습니다. . 와 더불어 sudo, 원격 컴퓨터의 암호를 입력해야합니다. 설정 한 경우에도 마찬가지입니다. 공개 키 인증 .


시도한 솔루션

리모컨에서 몇 가지 설정을 변경해 보았습니다. sshd_config 쓸데없는

PermitRootLogin without-password 
StrictModes no 

나는 또한 두 가지를 추가하려고 시도했습니다. piroot 사용자를 모션 그룹에 추가하지만 권한에 대해 자세히 살펴보면 그룹에는 내가 이동하는 파일에 대한 쓰기 권한이 없습니다.


TL, DR

어떻게 사용할 수 있습니까? sudo rsync 원격 컴퓨터의 암호를 입력하지 않고 다른 사용자가 만든 로컬 파일을 삭제 하시겠습니까?

답변:


0

네가 라스베리 파이에서하고있는 것처럼 보였다.

  1. 이 문자열 추가 pi ALL=(ALL) NOPASSWD: ALL ~로 /etc/sudoers
  2. 사용자 추가 pi 그룹에 motion: usermod -a -G motion pi
  3. 디렉토리 권한 변경 위치 motion 파일을 775로 저장 ( chmod -R 775 /path/to/motion/dir ) 지금 사용하실 수 있습니다. sudo rsync 암호를 제공하지 않고 사용자 'pi'에 대한 자격 증명을 저장합니다. root 지금

추신 또 다른 방법은 사용자가 motion 그에게 패스워드와 셸을 할당하여 일반 사용자가되는 것 sudo usermod -s /bin/sh motion; sudo passwd motion 이렇게하면 사용자 모션으로 rsyncing에 로그인 할 수 있습니다.

P.P. 의견을 듣고 실제로 필요한 것은 다음과 같습니다.

echo '*/5 * * * * root /usr/bin/rsync -avz --remove-source-files /home/pi/Pictures/SecurityCamera/ username@host:/Users/username/Pictures/SecurityCamera' | sudo /usr/bin/tee /etc/cron.d/saveMotionPics.task


rsync를 cron 작업으로 호출합니다. cron 작업이 항상 루트로 실행되지 않습니까?
James Webster

시스템 cron을 사용한다면 사용자를 지정해야합니다 - 누가 어떤 프로그램을 실행할 것인가? */5 * * * * motion /pat/to/the/program/to/run.sh 어디에 motion 실제로 사용자가됩니다. run.sh 추신 네가 사용할 수있는 원인 root 대신에 motion -이 방법은 sudo가 필요 없다.
Alex

나는 P.P.S. 후에 내 대답에 바로 cron 작업을 추가했다. rsyncing을 얼마나 자주하고 싶은지 수정하십시오, 5 분마다 설정합니다.
Alex
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.