Hedef makinede sudo ile rsync kullanmak


Yanıtlar:


68

Hedef makinede

  1. Yolunu bulun rsync:which rsync
  2. Düzenleme /etc/sudoersdosyası: sudo visudo(ayrıca bkz: ? Ben visudo kullanmalıdır )
  3. Kullanıcı adı, rsync'in giriş yapmak için kullanacağı kullanıcının giriş adı <username> ALL=NOPASSWD:<path to rsync>olduğu satırı ekleyin . Bu kullanıcı kullanabilmelidirsudo

Ardından, kaynak makinede sudo rsynckullanılacağını belirtin :

rsync ... --rsync-path="sudo rsync" ...

NOPASSWDHedef makinede olmadan kullanmak , mesaja neden olur.

sudo: tty yok ve hiçbir askpass programı belirtilmemiş


Belirli bir gruptaki herhangi bir kullanıcının bunu yapmasına izin verecek olan değişiklik nedir? <Kullanıcı adı> yerine <grup adı> sürümü var mı?
Brian

3
Kullandığım yüzden sayesinde sadece ben pki kullanmak-e="ssh -i $PRIVATE_KEY_PATH" --rsync-path="sudo rsync"
AT

1
Tabii ki <username> artık yerel ve uzaktaki rsync komutunu kullanarak her şeyi root olarak okuyabilir / yazabilir, bu nedenle güvenlik kaygıları nedeniyle root olarak giriş yapamamanın bir parçası ... aslında bunu yapıyorsunuz .
saat

1
Bu talimatları uyguladıktan sonra hala "mevcut değil ..." hatası alıyorum? Ben ... idim. Eklemiş olduğum satırın /etc/sudoersdosyanın sonuna geldiğinden emin olmak (veya aynı kullanıcıyı etkileyebilecek herhangi bir grup kuralından sonra) sorunu çözdü.
CPBL

1
Bu çözümü kullanıyorum, ancak kullanıcının hedef sunucuda rsync'e geçirebileceği alanları kısıtlayarak güvenliği artırmak istiyorum. Genelde, kullanılabilecek argümanları sınırlandırırdım, <username> ALL=NOPASSWD:<path to rsync> <args>ancak uzaktan bu şekilde çağrıldığında argümanların ne olacağını bilmiyorum. Herhangi bir fikir?
Pete Cornell

2

Remote sudo'nun size X-windows üzerinden şifrenizi sormasını sağlayabilirsiniz. İşte bunu yapmanın bir yolu:

  1. ssh-askpassUzak ana bilgisayara yüklendiğinden emin olun (ve elbette X-windows kullandığınızdan)
  2. Bunun içinde olduğundan emin olun /etc/sudo.conf:
# Path to askpass helper program
Path askpass /usr/bin/ssh-askpass
  1. Bu seçenekleri rsync'e ekleyin: -e "ssh -X" --rsync-path="sudo -A rsync"

    • ssh -X X-windows bilgilerinizi ve portunuzu uzaktaki oturumunuza yönlendirir
    • sudo -A sudo şifrenizi sormak için ssh-askpass kullanacaktır

0

Benim çözümüm --rsync-path="sudo rsync", eğer şifre isterse, bunun gibi bir geçici çözüm kullanabilirsiniz:

rsync -avz --stats --rsync-path="echo <SUDOPASS> | sudo -Sv && sudo rsync"  user@192.168.1.2:/ .

Ancak komut satırına bir şifre koymak güvenli değildir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.