rsync अनुमति ने मेरी स्थानीय मशीन को दूरस्थ निर्देशिका का समर्थन करने से इनकार कर दिया


11

मुझे शीर्षक में उल्लिखित त्रुटि मिल रही है।

मुझे यह समान प्रश्न मिला: दूरस्थ मशीन पर रूट अनुमति के साथ rsync चलाएँ । यह मेरे सवाल का जवाब नहीं है।

मैं दूरस्थ सर्वर पर व्यवस्थापक हूं और मैं rsyncअपने स्थानीय बॉक्स में फ़ाइलों का बैकअप लेने के लिए उपयोग करना चाहता हूं। यहाँ मेरी rsync कमांड है:

$ rsync -avz me@myserver.com:/var/www/ /backups/Sites/MySite/

यह ज्यादातर काम करता है। लॉगिन एक कीपर के माध्यम से होता है। मैं पासवर्ड (EDIT: SSH के माध्यम से लॉगिन करने के लिए) का उपयोग नहीं कर सकता और न ही कर सकता हूँ। अनुमतियों के कारण बस कुछ फ़ाइलें स्थानांतरित नहीं होंगी। मैं उन अनुमतियों को बदलना नहीं चाहता।

यहाँ त्रुटि है:

receiving file list ... done
rsync: send_files failed to open "/var/www/webapp/securestuff/install.php": Permission denied (13)

मैं उस फ़ाइल पर अनुमतियाँ नहीं बदलना चाहता। यह (और इसके जैसे अन्य) पठनीय (रूट को छोड़कर) नहीं होना चाहिए।

यह एक क्रॉन जॉब में चलना है और मैं केवल rsync कमांड का उपयोग करके एक सरल एक-लाइन समाधान पसंद करता हूं। अगली पसंद एक शेल स्क्रिप्ट होगी जिसे मैं क्रॉन जॉब से कॉल कर सकता हूं। किसी भी मामले में मैं मैन्युअल रूप से रिमोट मशीन में लॉग इन नहीं कर सकता और रूट हो सकता हूं (क्योंकि जब मैं सोऊंगा तो यह रन होगा।

मैं अपने स्थानीय बॉक्स तक इसे वापस करने के लिए rsync का उपयोग कैसे कर सकता हूं?


क्या आप कृपया हमें ssh me@myserver.com "cat /var/www/webapp/securestuff/install.php"> localfile जैसा कुछ दिखा सकते हैं?
फ्लोरेंज केली

@Florenz Kley: मुझे आपकी टिप्पणी समझ में नहीं आ रही है
MountainX

मुझे दिखाओ कि आप फ़ाइल पढ़ सकते हैं और मैं आपको एक rsync कमांड दिखाता हूं जो :-) काम करता है। ग्रेविटी से विकल्प # 2 शायद आपका सबसे अच्छा दांव है।
फ्लोरेन केली

@Florenz Kley: ssh me@myserver.com "इको माइलगॉर्ड | sudo -S cat /var/www/webapp/securestuff/install.php"> localfile
MountainX

मुझे मिल गया rsync: send_files failed to open "/cygdrive/...": Permission denied (13)। तो मेरा स्रोत कंप्यूटर विंडोज साइबर था। थोड़ा अलग स्थिति है, लेकिन पोस्टरिटी के लिए, मेरा समाधान cmd.exe को राइट-क्लिक करना था और व्यवस्थापक के रूप में चलाएँ
बॉब स्टीन

जवाबों:


8

आप एक फ़ाइल का बैकअप नहीं ले सकते हैं जिसे आप अन्यथा नहीं पढ़ सकते हैं, इसलिए अनुमतियों को या तो बदलना होगा या रूट द्वारा ओवरराइड करना होगा

अधिक विस्तार से आपके विकल्प:

  • root@myserver.comसीधे rsync'ing द्वारा अनुमतियों को ओवरराइड करें । (

  • ... या सर्वर-साइड घटक के पासवर्ड-कम चलने की अनुमति देने के लिए सर्वर पर sudo कॉन्फ़िगर करके rsync

    me    ALL=(root) NOPASSWD: /usr/bin/rsync --server --sender -vlogDtprze.iLsf . /var/www/
    

    तथा

    rsync --rsh="ssh me@myserver.com sudo" -avz /var/www/ /backups/...
    
  • सर्वर पर एक समर्पित "वेबसाइट-बैकअप" खाता बनाएं। "वेबसाइट-बैकअप" खाते के लिए उन्हें पठनीय बनाने के लिए फ़ाइलों की अनुमतियों को बदलें; आप एसीएल और उसके setfaclलिए उपयोग कर सकते हैं । इस खाते का उपयोग किसी और चीज़ के लिए न करें।

    rsync -avz website-backup@myserver.com:/var/www/ /backups/sites/mysite/
    
  • सर्वर पर एक स्क्रिप्ट लिखें जो एन्क्रिप्टेड टारबॉल में / var / www / को डंप करेगा। फिर, इसे रूट के रूप में किया जा सकता है (crontab के माध्यम से) या sudo को कॉन्फ़िगर करके उस स्क्रिप्ट के लिए पासवर्ड की आवश्यकता नहीं है। उदाहरण के लिए:

    #!/bin/sh
    tar c /var/www/ | gpg -e -r mountainx@example.com
    

    बैकअप हर बार पूरे टारबॉल को खींचकर किया जाएगा, जो बड़ी साइटों के साथ अक्षम हो सकता है:

    ssh me@myserver.com "sudo /usr/sbin/dump-website" > /backups/sites/mysite.tar.gpg
    

    Sudoers को संपादित करके पासवर्ड की आवश्यकता को हटा दिया जाएगा :

    me     ALL=(root) NOPASSWD: /usr/sbin/dump-website
    

धन्यवाद। अच्छा सुझाव है। या तो कोई मेरे लिए काम करेगा। अगर मैं इसके संभावित दुष्प्रभावों का पता लगा सकता / सकती हूं, तो मैं सुपरसुअर . com / questions / 270911/… पर समाधान का उपयोग करने पर विचार कर रहा हूं ।
माउंटेनएक्स

BTW, मेरा मतलब पिछले 2 विकल्पों में से है। सर्वर पर SSH के माध्यम से रूट के रूप में लॉगिंग की अनुमति नहीं है।
माउंटेनएक्स

@MountX: मैंने अलग विकल्प के रूप में "sudo के माध्यम से rsync" को अलग किया। यह भी काम कर सकता है।
user1686

धन्यवाद! "sudo के माध्यम से rsync" मेरी पसंदीदा पसंद होगी। मैं आपके सुझाव की कोशिश करूंगा। ऐसा लगता है कि मुझे सर्वर पर उबंटू पर विज़ूडो का उपयोग करके इसे लागू करने की आवश्यकता है। मैंने बहुत अधिक दृश्य के साथ गड़बड़ नहीं की है, लेकिन आपने मुझे शुरू करने के लिए पर्याप्त दिया है। एक बार फिर धन्यवाद।
माउंटेनएक्स

5

दूरस्थ होस्ट में आप के साथ rsync डेमॉन चला सकते हैं

उड जड़

में /etc/rsyncd.confफ़ाइल।

यह डेमॉन को CAP_DAC_OVERRIDEअनुमति / स्वामित्व को बदलने के बिना क्षमता का उपयोग करने और स्थानीय फ़ाइल सिस्टम को पढ़ने की अनुमति देगा।

यदि आपको केवल एक बैकअप बनाने की आवश्यकता है तो केवल मोड पढ़ने के लिए rsync सेट करना एक अच्छा अभ्यास है:

केवल पढ़ें = सच


0

यदि फ़ाइलें केवल पठनीय हैं, rootतो आपको rootफ़ाइल सिस्टम से पढ़कर फ़ाइल का बैकअप लेने की आवश्यकता है। rsyncकच्चे डिवाइस से नहीं फाइल सिस्टम से फाइलों को पढ़ रहा है।

के अपवाद के साथ dump, ddऔर इसी तरह के बैकअप जो विभाजन को कॉपी करते हैं, बल्कि फाइल, बैकअप प्रोग्राम फाइल सिस्टम से फाइलों को पढ़ते हैं। बैकअप उपयोगिताओं को पढ़ने और बैकअप करने में विफल हो जाएगा, जिसके लिए उपयोगकर्ता आईडी की अनुमतियाँ उन्हें रोकने के लिए उपयोग किया जाता है। यह वह मामला है जिसमें आप भाग रहे हैं।

ज्यादातर मामलों में आपको अपने बैकअप सॉफ़्टवेयर पर भरोसा करने की आवश्यकता होती है ताकि वह आपके सभी डेटा को पढ़ सके। इसका मतलब यह भी है कि आपको अपने सभी डेटा के साथ अपने बैकअप माध्यम पर भरोसा करने की आवश्यकता है। कुछ मामलों में आप कुछ फ़ाइलों को बैकअप से बाहर करना चाहते हैं और उनकी सामग्री का बैकअप लेने के लिए एक वैकल्पिक विधि का उपयोग कर सकते हैं।

संपादित करें: जैसा कि आप डेटा संग्रहीत कर रहे हैं (सभी अनुमतियों की प्रतिलिपि बना रहे हैं) आपको दोनों सर्वरों पर रूट एक्सेस की आवश्यकता होगी। यदि आप इसे एक बैकअप के रूप में कर रहे हैं, तो आप बैकअपपीसी जैसे समाधान को देखना चाहते हैं, जो फ़ाइलों को पढ़ने के लिए rsync का उपयोग करता है, लेकिन फ़ाइलों को अपनी निर्देशिका ट्री में संग्रहीत करता है।


Rsync रूट एक्सेस देने के तरीके हैं। मैं उन्हें नहीं जानता। मैं क्या पूछ रहा हूं कि इन फ़ाइलों का बैकअप लेने के लिए rsync रूट एक्सेस कैसे दी जाए। शायद मुझे "दूरस्थ मशीन पर रूट अनुमति के साथ rsync चलाने" के उत्तर को फिर से देखना होगा और देखना होगा कि क्या मैं इसका पता लगा सकता हूं ...
माउंटेनएक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.