उपयोगकर्ता को बदलते समय


16

मुझे लिनक्स मशीनों के बीच फ़ाइल की प्रतिलिपि बनाने की आवश्यकता है। समस्या है कि उपयोगकर्ता मैं लॉगिन करने के लिए उपयोग ( myuser), उस उपयोगकर्ता से अलग है जो फ़ाइल तक पहुंच सकता है।

अगर मैं sshमशीन के पास हूं, तो मैं उपयोग करने वाले उपयोगकर्ता को स्विच कर sudo su someuserसकता हूं, क्या मैं इसे किसी भी तरह से कर सकता हूं scp?

WinSCP का उपयोग करते हुए, मैं इसे करने में कामयाब रहा, SCP / Shell को कॉन्फ़िगर करके, इसलिए मेरा मानना ​​है कि शुद्ध शेल के माध्यम से इसे करने का एक समान तरीका होना चाहिए।


मैं उलझन में हूं। आप उस उपयोगकर्ता के रूप में लॉगिन क्यों नहीं करते जो फ़ाइल में हेरफेर करता है?
रहमू

क्योंकि अन्य उपयोगकर्ता का उपयोग करके लॉगिन करना असंभव है।
टैरलॉज

कैसे के साथ जोड़ने sshऔर क्रियान्वित करने के बारे में scp, कुछ इस तरह ssh myuser@host "sudo scp ...":?
रहमू

शायद इस तरह की स्थिति में यहां जवाब काम कर सकता है? unix.stackexchange.com/questions/43094/… @ टैरलॉग यह मानता है कि रिमोट मशीन पर ही, आप someuser @ दूरस्थ
बर्नहार्ड

जवाबों:


9

यह मानते हुए कि जिस उपयोगकर्ता को आप लक्षित उपयोगकर्ता में sudo su के पासवर्ड की आवश्यकता नहीं कर सकते, आप यह कोशिश कर सकते हैं:

dd if=myfile | ssh some.host "sudo -u targetuser dd of=myfile" 

... मन, मैं अभी भी असंबद्ध हूं कि केवल targetuserSSH पर केवल scp / sftp / rsync की अनुमति देने के लिए कॉन्फ़िगर कर रहा हूं और प्रमाणीकरण के लिए RSA कीपेयर का उपयोग करना बेहतर विकल्प नहीं है।


1
या tar -cvf - * | ssh user@host "sudo -u targetuser tar -C /targetdir -xf -"फाइलों का एक गुच्छा के लिए
मैट

यह भी सच है, और मुझे लगता है कि हम बहस कर सकते हैं कि कनेक्शन गति और कंप्यूटर हार्डवेयर के आधार पर उपयोगी हैं -zया नहीं -j...
Shadur

3

यदि आप अन्य उपयोगकर्ता को क्रेडेंशियल्स जानते हैं ( someuser) तो आप इसे अपने scpकॉल पर निर्दिष्ट कर सकते हैं ।

से man scpपेज:

फ़ाइल नामों में उपयोगकर्ता और होस्ट विनिर्देश शामिल हो सकते हैं ताकि यह इंगित किया जा सके कि फ़ाइल को उस होस्ट से / से कॉपी किया जाना है। स्थानीय फ़ाइल नामों को होस्ट स्पेसिफ़ायर के रूप में ':' वाले स्केप ट्रीटमेंट फ़ाइल नामों से बचने के लिए निरपेक्ष या सापेक्ष रास्तों का उपयोग करके स्पष्ट किया जा सकता है। दो दूरस्थ मेजबानों के बीच कॉपियों की भी अनुमति है।

यहाँ सिंटैक्स का उपयोग किया गया है:

[[user@]host:]/path/to/file

उदाहरण

आप अपने स्थानीयहोल्डर /home/foo/barसे फाइल को कॉपी करना चाहते हैं host1, उपयोगकर्ता का उपयोग कर someuser, यहाँ कमांड है:

scp someuser@host1:/home/foo/bar .

आपको प्रमाणीकरण (पासवर्ड, चाबियाँ, ...) के लिए कहा जाएगा।


1
अन्य उपयोगकर्ता के रूप में लॉगिन करना असंभव है।
टारगेल

फिर RSA कुंजियों के साथ एक scp / rsync- केवल लॉगिन स्थापित करें।
शादुर

1
किसी भी प्रकार के लॉगिन का उपयोग करके दूसरे उपयोगकर्ता का उपयोग करना असंभव है। अन्य तो यह है कि मैं पहले से ही ssh / scp के लिए RSA कुंजियों का उपयोग करता हूं।
तारकोल

1

यह शायद संभव है , लेकिन मैं कहूंगा कि इसके बारे में जाने के लिए यह बहुत अजीब तरीका है।

मेरा पहला सुझाव उस उपयोगकर्ता के रूप में लॉगिन करना है। यहां तक ​​कि अगर आपके पास उस उपयोगकर्ता का पासवर्ड नहीं है, तो आप अपने स्वयं के सार्वजनिक ssh कुंजी को उनके अधिकृत_कीप में जोड़ सकते हैं और फिर उनकी कुंजी का उपयोग करके scp कर सकते हैं, जैसा कि rahmu दिखाता है।

यदि यह संभव नहीं है, तो मेरा दूसरा सुझाव उपयोगकर्ता को ssh, sudo द्वारा लॉग इन करना है और उन फ़ाइलों का एक टारफाइल बनाना है जिन्हें आप कॉपी करना चाहते हैं और इसे कहीं रख दें जिसे आपका अपना उपयोगकर्ता पढ़ सकता है। फिर उस तारकोल को नीचे गिरा दें।


अन्य उपयोगकर्ता को लॉगिन करना असंभव है। हां, मैंने खुद ही दूसरा सुझाव दिया। एक आसान तरीका खोज रहे हैं :)
टैरलॉग

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

खैर, मैं एक स्क्रिप्ट बनाने की कोशिश कर रहा हूं (जिसका उपयोग कई बार किया जा रहा है) जो विभिन्न उपयोगकर्ताओं द्वारा उपयोग किया जाएगा। इसलिए मेरे लिए पहुँच प्रदान करना वास्तव में मदद नहीं करेगा। जो कोई भी able सुडो सु अनूसर ’करने में सक्षम है, उसे स्क्रिप्ट चलाने में सक्षम होना चाहिए।
तारिख

पकड़ लिया। मैं gcb से लिंक के साथ शुरू करूंगा, तो अगर आपको स्क्रिप्ट की समस्या है तो यह देखें और देखें कि क्या हम कुछ मदद कर सकते हैं।
जेनी डी

1

कमांड -Sपर उपयोग करेंscp

उदा। /superuser/87597/how-to-perform-scp-as-a-sudo-user

यह आपको एक स्क्रिप्ट निष्पादित करने की अनुमति देगा, जैसे कि मुझे विश्वास है कि आप wincp उपयोग केस के साथ कर रहे थे।


0

मैंने निम्नलिखित लेख में कुछ उदाहरण देने की कोशिश की। मूल विचार scp का उपयोग नहीं है, लेकिन sudo उपयोगकर्ता स्विच के साथ dd और ssh का उपयोग करें। देखो:

http://hmmss.wordpress.com/2014/07/02/ssh-and-scp-with-another-user


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