Rsync komut sorunları, sahip ve grup izinleri değişmiyor


28

Sahibini ve grubunu ayarlamaya çalışıyorum ve çalışıyor rsyncgibi görünmüyor.

Bu komut:

sudo rsync -rlptDvz --owner=cmsseren --group=cmsseren /home/serena/public_html/ -e ssh root@ip:/home/cmsseren/public_html2/

Dosyalar doğru şekilde senkronize edilir, ancak sahibi ve grubu değiştirmiyor gibi görünüyor.

Yanıtlar:


14

Doğru çalışıyor gibi geliyor. Sahip ve grup adlarını korumak--owner ve ayarlamak --groupiçin ve düğmelerini kullanın ... transferden sonra değişmelerini istemediğiniz anlamına gelir.

Bu seçenekleri kullanmazsanız, kullanıcı ve grup alıcı taraftaki çağıran kullanıcı olarak değiştirilecektir. Başka bir kullanıcı belirlemek istiyorsanız, chownkomut dosyasına komut eklemeniz gerekir .

-o, --owner
    This option causes rsync to set the owner of the destination file to be 
    the same as  the source file, but only if the receiving rsync is being run 
    as the super-user (see also the --super and --fake-super options). Without 
    this option, the owner of new and/or transferred files are set to the invoking 
    user on the receiving side...

-g, --group
    This option causes rsync to set the group of the destination file to be the same as 
    the source file. If the receiving program is not running as the super-user (or if
    --no-super was specified), only groups that the invoking user on the receiving side
    is a member of will be preserved. Without this option, the group is set to the default
    group of the invoking user on the receiving side...

erkek rsync


1
Peki nasıl uzaktan kullanıcı ve grup chown? Ssh ile mi? Lütfen bana nasıl olduğunu söyler misiniz? Her iki sunucu için de kök erişimim var. Ssh anahtarlarını kullanmak istemiyorum, ama bildiğiniz tüm seçenekleri söyleyin, takdir edeceğim. Hızlı cevap
verdiğiniz

Komut bunun gibi bir şeye ssh root@ip 'chown -R cmsseren:cmsseren /home/serena/public_html2/*'
benzeyebilir

Denedim, ancak çalışmadı, sahipleri ve kullanıcıları aynı. Komutu yaptıktan sonra yazıyor: stdin: bir tty değil
Arnoldo Bazaldua

Şimdi çalışıyor, güvenlik duvarı sorunları. Şimdi sadece ssh ve rsync için parola girişini otomatikleştirmek zorundayım
Arnoldo Bazaldua

Bunu diğer sorulara göndereceğim, yardımınız için teşekkürler
Arnoldo Bazaldua

61

Rsync'in 3.1.0 sürümü Thomas tarafından tanıtıldı --usermapve --groupmapbahsetti, aynı zamanda --chownsenaryonuz için uygun olan kullanışlılık seçeneği .

--chown=USER:GROUP
    This option forces all files to be owned by USER with group GROUP.
    This  is  a  simpler  interface  than  using  --usermap  and  --groupmap directly,
    but  it  is implemented using those options internally, so you cannot mix them.
    If either the USER or GROUP is empty, no mapping for the omitted user/group will
    occur.  If GROUP is empty, the trailing colon may be omitted, but if USER is
    empty, a leading colon must  be supplied.

    If you specify "--chown=foo:bar, this is exactly the same as specifying
    "--usermap=*:foo --groupmap=*:bar", only easier.

Ayrıca, -ove -gseçenekler gereklidir. Bunları dışlamak, ilgili özelliklerini güncellemekte başarısız olur, ancak hata üretmez.

rsync -og --chown=cmsseren:cmsseren [src] [dest]

Bu, dolaylı olarak, "kullanma ve dahili olarak uygulanma" seçeneğinin belirtildiğini belirten kılavuzda belirtilmiştir ve:--chown--usermap--groupmap

İçin --usermapseçenek herhangi bir etkiye sahip, -o( --owner) seçeneği kullanılır (veya zımni) ve alıcı (ayrıca bkz süper kullanıcı olarak çalışıyor olması gerekir olmalıdır --fake-superseçeneği).

İçin --groupmapseçenek herhangi bir etkiye sahip, -g( --groups) seçeneği kullanılır (veya zımni) ve alıcı bu grup ayarlamak için izinleri olması gerekir olmalıdır.


5
Neden -og gerekli? Bana mantıklı gelmiyor ama sistemimde de bu gerekli.
Yai0Phah

4
@ FrankScience Kabul, mantıksız görünüyor. Aynı soru, rsync posta listesinde de istendi . "Ben doktorlar için --chownbu --owner( --super) ve --groupihtiyaç duyduğunu belirtmek için iyi olacağını düşünüyorum . "
TachyonVortex

5

Rsync'in en son sürümü (en az 3.1.1) "uzak sahiplik" belirtmenizi sağlar:

--usermap=tom:www-data

Tom sahipliğini www-data olarak değiştirir (aka PHP / Nginx). Mac'i istemci olarak kullanıyorsanız, son sürüme yükseltmek için brew kullanın. Ve sunucunuzda arşiv kaynaklarını indirin, ardından "yapın"!


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.