Xóa các tệp được tạo bởi người dùng khác bằng rsync


0

Vấn đề

Tôi có kịch bản sau đây:

  • chuyển động đang tạo thư mục và tệp với người dùng: nhóm motion:motionvà quyền755
  • như một tác vụ định kỳ, tôi muốn định kỳ sao chép các tệp này vào một máy tính từ xa và sau đó xóa chúng . Lệnh tôi đang cố sử dụng là

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

  • Các tệp được sao chép thành công vào máy từ xa , tuy nhiên không có sudo, các tệp cục bộ sẽ không bị xóa . Với sudo, tôi bắt buộc phải nhập mật khẩu của mình cho máy từ xa, mặc dù tôi đã thiết lập xác thực khóa chung .


Giải pháp đã thử

Tôi đã thử thay đổi một vài cài đặt trong sshd_config từ xa thành vô ích

PermitRootLogin without-password 
StrictModes no 

Tôi cũng đã thử thêm cả người dùng pirootngười dùng vào nhóm chuyển động, nhưng nhìn kỹ hơn vào các quyền, các nhóm không có quyền truy cập ghi vào các tệp tôi đang di chuyển.


TL; DR

Làm cách nào tôi có thể sử dụng sudo rsyncđể xóa các tệp cục bộ được tạo bởi người dùng khác mà không cần nhập mật khẩu cho máy từ xa?

Câu trả lời:


0

Dường như với tôi rằng bạn đang làm điều này trên Raspberry Pi.

  1. Thêm chuỗi này pi ALL=(ALL) NOPASSWD: ALLvào/etc/sudoers
  2. Thêm người dùng pivào nhóm motion:usermod -a -G motion pi
  3. Thay đổi quyền thư mục trong đó motionlưu tệp thành 775 ( chmod -R 775 /path/to/motion/dir) Bạn có thể sử dụng ngay bây giờ sudo rsyncmà không cần cung cấp mật khẩu nhưng giữ thông tin xác thực vị trí lưu cho người dùng 'pi' vì gần như rootbây giờ

PS Một cách khác là cho phép người dùng motiontrở thành người dùng bình thường bằng cách gán mật khẩu và vỏ cho anh ấy sudo usermod -s /bin/sh motion; sudo passwd motion Cách này bạn có thể đăng nhập để rsyncing như một chuyển động của người dùng

PPS Sau bình luận, những gì bạn thực sự cần là:

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


Tôi đang gọi rsync như một nhiệm vụ cron. Các nhiệm vụ không phải luôn luôn chạy như root?
James Webster

Không thực sự, nếu bạn sử dụng hệ thống cron thì bạn cần phải chỉ định sử dụng - ai sẽ là người để chạy một số chương trình, kinda thích rằng */5 * * * * motion /pat/to/the/program/to/run.shnơi motionlà một người dùng sẽ thực sự run.shPS nguyên nhân bạn có thể sử dụng rootthay vì motion- theo cách này bạn không cần bất kỳ sudo
Alex

Tôi đã thêm công việc định kỳ đúng vào câu trả lời của mình sau PPS Chỉ cần sửa mức độ thường xuyên bạn muốn rsyncing, tôi đặt ở đó cứ sau 5 phút
Alex
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.