गंतव्य मशीन पर sudo के साथ rsync का उपयोग करना


39

एक समस्या है कि rsync UID और GID को अपेक्षित रूप से सेट नहीं करता है , मेरी आंत की भावना यह है कि गंतव्य मशीन के rsyncरूप में चलाया जाना चाहिए root

मैं rootSSH के माध्यम से लॉगिन नहीं कर सकता , क्योंकि यह सुरक्षा उद्देश्यों के लिए अक्षम है। गंतव्य मशीन पर उपयोगकर्ता उपयोग करने में सक्षम है sudo

क्या इसके rsyncसाथ उपयोग करना संभव है sudo?

जवाबों:


68

गंतव्य मशीन पर

  1. इसके लिए रास्ता खोजें rsync:which rsync
  2. /etc/sudoersफ़ाइल संपादित करें : sudo visudo(यह भी देखें: क्या मुझे विज़ूडो का उपयोग करना चाहिए? )
  3. उस पंक्ति को जोड़ें <username> ALL=NOPASSWD:<path to rsync>, जहाँ उपयोगकर्ता नाम का लॉगिन नाम है जिसे rsync लॉग ऑन करने के लिए उपयोग करेगा। वह उपयोगकर्ता उपयोग करने में सक्षम होना चाहिएsudo

फिर, स्रोत मशीन पर, निर्दिष्ट करें कि sudo rsyncइसका उपयोग किया जाएगा:

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

NOPASSWDगंतव्य मशीन पर बिना इसका उपयोग करने के परिणामस्वरूप संदेश जाएगा

sudo: कोई tty मौजूद नहीं है और कोई askpass प्रोग्राम निर्दिष्ट नहीं है


इसमें ऐसा क्या संशोधन है जो किसी विशिष्ट समूह के किसी भी उपयोगकर्ता को ऐसा करने की अनुमति देगा? के बजाय <उपयोगकर्ता नाम> एक <Groupname> संस्करण है?
ब्रायन

3
धन्यवाद, केवल मैं पक्की का उपयोग करता हूं इसलिए मैंने इस्तेमाल किया-e="ssh -i $PRIVATE_KEY_PATH" --rsync-path="sudo rsync"
एटी

1
बेशक <username> अब सब कुछ rsync, स्थानीय और रिमोट का उपयोग करके रूट के रूप में पढ़ / लिख सकता है, इसलिए सुरक्षा चिंताओं के कारण रूट के रूप में लॉग इन नहीं कर पा रहा है। यह थोड़े बहुत ही महत्वपूर्ण है ... क्योंकि आप जो कर रहे हैं वह अनिवार्य रूप से है ।
hmn

1
इन निर्देशों का पालन करने के बाद भी "नॉट टीटी प्रेजेंट ..." त्रुटि हो रही है? मैं था। यह सुनिश्चित करना कि मैंने जो लाइन जोड़ी है /etc/sudoersवह फ़ाइल के अंत में आती है (या किसी भी समूह नियमों के बाद जो उसी उपयोगकर्ता को प्रभावित कर सकती है) ने मेरे लिए समस्या हल कर दी।
सीपीबीएल

1
मैं इस समाधान का उपयोग कर रहा हूं, लेकिन उपयोगकर्ता को गंतव्य सर्वर पर rsync करने के लिए पारित कर सकते हैं args को सीमित करके सुरक्षा में सुधार करना चाहते हैं। आमतौर पर मैं उन आर्गों को सीमित कर देता <username> ALL=NOPASSWD:<path to rsync> <args>हूं जिनका उपयोग किया जा सकता है लेकिन मुझे नहीं पता कि इस तरह से दूरस्थ रूप से आर्गन क्या होगा। कोई विचार?
पीट कॉर्नेल

3

आपके पास रिमोट सूडो हो सकता है आप एक्स-विंडो के माध्यम से अपना पासवर्ड पूछ सकते हैं। यहाँ ऐसा करने का एक तरीका है:

  1. सुनिश्चित करें कि ssh-askpassदूरस्थ होस्ट पर स्थापित है (और आप एक्स-विंडो का उपयोग कर रहे हैं, निश्चित रूप से)
  2. सुनिश्चित करें कि यह इसमें है /etc/sudo.conf:
# Path to askpass helper program
Path askpass /usr/bin/ssh-askpass
  1. इन विकल्पों को rsync में जोड़ें: -e "ssh -X" --rsync-path="sudo -A rsync"

    • ssh -X आपकी X- विंडोज़ जानकारी को आगे बढ़ाएगा और आपके दूरस्थ सत्र को पोर्ट करेगा
    • sudo -A आपके पासवर्ड के लिए आपसे पूछने के लिए sudo ssh-askpass का उपयोग करेगा

उबंटू 18 पर काम करता है; /etc/sudo.conf बनाएं (यदि यह पहले से मौजूद नहीं है) m / c
Snidhi Sofpro

0

मेरा समाधान उपयोग करना है --rsync-path="sudo rsync", यदि यह पासवर्ड मांगता है तो आप इस तरह से वर्कअराउंड का उपयोग कर सकते हैं:

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

लेकिन यह कमांड लाइन में पासवर्ड डालने के लिए सुरक्षित नहीं है।

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