रुपी आदेश आदेश, स्वामी और समूह अनुमतियाँ परिवर्तित नहीं होती हैं


28

मैं के माध्यम से मालिक और समूह सेट करने की कोशिश कर रहा हूँ rsyncऔर यह काम नहीं कर रहा है।

यह आदेश है:

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

फ़ाइलें सही ढंग से सिंक होती हैं लेकिन स्वामी और समूह को परिवर्तित नहीं करती हैं।

जवाबों:


14

ऐसा लगता है कि यह सही ढंग से काम कर रहा है। का प्रयोग करें --ownerऔर --groupकरने के लिए बनाए रखने के (सेट नहीं) के मालिक और समूह के नाम ... जिसका अर्थ है कि आप उन्हें स्थानांतरण के बाद बदलने के लिए नहीं करना चाहती।

यदि आप इन विकल्पों का उपयोग नहीं करते हैं, तो उपयोगकर्ता और समूह को प्राप्त करने वाले उपयोगकर्ता को बदल दिया जाएगा। यदि आप कुछ अन्य उपयोगकर्ता निर्दिष्ट करना चाहते हैं, तो आपको chownअपनी स्क्रिप्ट में एक कमांड जोड़ना होगा ।

-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...

आदमी rsync


1
तो मैं उपयोगकर्ता और समूह को रिमोटली कैसे चोद सकता हूँ? वाया शश? क्या आप मुझे बता सकते हैं कि कैसे? मेरे पास दोनों सर्वरों के लिए रूट एसेस हैं। मैं ssh कुंजियों का उपयोग नहीं करना चाहता, लेकिन मुझे बताए गए सभी विकल्प बताएं, मैं इसकी सराहना करता हूं। त्वरित प्रतिक्रिया के लिए धन्यवाद
अर्नोल्डो बाजाल्डुआ

कमांड कुछ इस तरह दिखाई देगी: ssh root@ip 'chown -R cmsseren:cmsseren /home/serena/public_html2/*'
user3150166

मैंने कोशिश की, लेकिन काम नहीं किया, मालिकों और उपयोगकर्ताओं को एक ही हैं। कमांड बनाने के बाद यह कहता है:
स्टडिन: टटी

यह अब काम करता है, फ़ायरवॉल मुद्दों। अब मुझे बस ssh और rsync के लिए पासवर्ड इनपुट को स्वचालित करना है
अर्नोल्डो बाजाल्डुआ

मैं इसे अन्य जांच में पोस्ट करूँगा, आपकी मदद के लिए धन्यवाद
अर्नोल्डो बाजाल्डुआ

61

Rsync के संस्करण 3.1.0 ने थॉमस द्वारा प्रस्तुत --usermapऔर --groupmapउल्लेख किया, लेकिन सुविधा विकल्प भी है --chown, जो आपके परिदृश्य के लिए अच्छी तरह से काम करता है।

--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.

इसके अलावा, -oऔर -gविकल्प आवश्यक हैं। उन्हें छोड़कर उनकी संबंधित विशेषता को अपडेट करने में विफल रहेंगे, लेकिन कोई त्रुटि उत्पन्न नहीं करेंगे।

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

यह अप्रत्यक्ष रूप से मैनपेज में उल्लिखित है , जिसमें कहा गया है कि --chownविकल्प " आंतरिक --usermapऔर --groupmapआंतरिक रूप से उपयोग किया जाता है ", और:

--usermapकिसी भी प्रभाव के विकल्प के लिए, -o( --owner) विकल्प का उपयोग (या निहित) किया जाना चाहिए, और रिसीवर को सुपर-उपयोगकर्ता के रूप में चलने की आवश्यकता होगी ( --fake-superविकल्प भी देखें )।

--groupmapकिसी भी प्रभाव के विकल्प के लिए, -g( --groups) विकल्प का उपयोग (या निहित) किया जाना चाहिए, और रिसीवर को इस समूह को सेट करने के लिए अनुमतियों की आवश्यकता होगी।


5
-Og की आवश्यकता क्यों है? यह मेरे लिए अतार्किक लगता है लेकिन मेरे सिस्टम पर भी इसकी आवश्यकता है।
याईपहा

4
@ फ्रेंकसाइंस सहमत हैं, यह अतार्किक लगता है। यही सवाल rsync मेलिंग सूची पर भी पूछा गया था । "मैं यह सुझाव दूंगा कि डॉक्स --chownउस --owner( --super) की --groupआवश्यकता का उल्लेख करने के लिए अच्छा करेगा"
TachyonVortex 12

5

Rsync का अंतिम संस्करण (कम से कम 3.1.1) आपको "दूरस्थ स्वामित्व" को निर्दिष्ट करने की अनुमति देता है:

--usermap=tom:www-data

Www-data (उर्फ PHP / Nginx) के लिए टॉम का स्वामित्व बदलता है। यदि आप क्लाइंट के रूप में मैक का उपयोग कर रहे हैं, तो पिछले संस्करण में अपग्रेड करने के लिए काढ़ा का उपयोग करें। और अपने सर्वर पर, संग्रह स्रोतों को डाउनलोड करें, फिर इसे "बनाओ"!


0

एक अन्य समाधान दूरस्थ उपयोगकर्ता को बदलने का हो सकता है जो rsyncकनेक्शन का उपयोग करके स्थापित करता है --rsync-path। मैंने यहां पूरा विवरण पोस्ट किया है:

/unix//a/546296/116861

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.