मैं उसी होम नेटवर्क पर किसी अन्य लिनक्स मशीन के साथ एक फ़ोल्डर कैसे साझा करूं?


43

मैं एक उबंटू मशीन पर एक ही घर के नेटवर्क पर एक और उबंटू मशीन के साथ एक फ़ोल्डर साझा करने की कोशिश कर रहा हूं। जब मैं फ़ोल्डर पर राइट क्लिक करता हूं और शेयरिंग विकल्प का चयन करता हूं, तो यह मुझे बताता है कि मुझे फ़ोल्डर्स साझा करने के लिए विंडोज नेटवर्क साझाकरण सेवाओं को स्थापित करने की आवश्यकता है। विंडोज को इससे क्या लेना-देना है? मैं एक विंडोज़ मशीन के साथ साझा करने की कोशिश नहीं कर रहा हूँ ...

जवाबों:


22

विंडोज को इससे क्या लेना-देना है? मैं एक विंडोज़ मशीन के साथ साझा करने की कोशिश नहीं कर रहा हूँ ...

आप सही हैं, यह भ्रामक हो सकता है। तो मुझे सबसे पहले शब्दों को स्पष्ट करने का प्रयास करना चाहिए:

विंडोज जिस तरह से फाइल और प्रिंटर शेयर करता है उसे SMB कहा जाता है । SAMBA परियोजना के लोगों ने लिनक्स के लिए Microsoft के सभी प्रोटोकॉल और विशिष्टताओं को लागू किया है। इसलिए उबंटू विंडोज के समान फ़ाइल साझाकरण का समर्थन करता है, जिसे सांबा कहा जाता है।

  • लिनक्स मशीनों के बीच फाइल साझा करने के लिए आप एसएएमबीए का उपयोग कर सकते हैं। वास्तव में, आप इसे पसंद कर सकते हैं यदि आपके पास उदाहरण के लिए, उनके विंडोज कंप्यूटर के साथ एक दोस्त है।

  • वैकल्पिक रूप से, आप फ़ाइलों को साझा करने के लिनक्स तरीके का उपयोग कर सकते हैं , जो कि एनएफएस (नेटवर्क फाइल सिस्टम) है - पिछले प्रश्न का यह उत्तर बताता है कि यह कैसे करना है। (लेकिन यह तकनीकी है)

इसलिए, जब साझाकरण विकल्प संवाद आपको पैकेजों को स्थापित करने के लिए कहता है, तो आप वास्तव में कोई Microsoft सॉफ़्टवेयर या ऐसा कुछ भी स्थापित नहीं कर रहे हैं। आगे बढ़ो और इसे करो, यह पूरी तरह से सुरक्षित है।

परिशिष्ट:

आप सालीह एमिन के निर्देशों का पालन करने से पहले सिर्फ साझाकरण को सक्षम करने का प्रयास कर सकते हैं; यदि यह काम नहीं करता है, तो आपको एक सरल चेतावनी मिलेगी, आप जरूरत पड़ने पर सलाही का वर्णन कर सकते हैं। मैंने इसे नए सिरे से स्थापित और अद्यतित प्रणाली पर आजमाया है, और मुझे वास्तव में ऐसा करने की आवश्यकता है।


1
स्पष्टीकरण के लिए धन्यवाद। मजेदार है कि मैं Microsoft से दूर होने की कोशिश कर रहा हूं, और यह पता चला है कि यहां तक ​​कि लिनक्स उनके काम के टुकड़ों का उपयोग करता है। ओह।
एम्मीएस

4
खैर, सांबा के लोगों ने माइक्रोसॉफ्ट के प्रोटोकॉल को खुद माइक्रोसॉफ्ट से बेहतर तरीके से लागू किया है। कुछ सांत्वना वहाँ :-)
Stefano Palazzo

8

वर्तमान में, ल्यूसीड में एक छोटा बग है जो लॉन्चपैड में सूचीबद्ध है: बग # 536766 । यह बग उपयोगकर्ता को फ़ाइल साझाकरण सेट-अप को पूरा करने के लिए आवश्यक आवश्यक पैकेजों को स्थापित करने के लिए संकेत नहीं देता है। जब तक संबोधित नहीं किया जाता है, तब तक यहां एक त्वरित समाधान है।

आपको libapache2-mod-dnssd और पुनः आरंभ करने की आवश्यकता है। इसे स्थापित करने के लिए इस लिंक पर क्लिक करें, या सॉफ़्टवेयर सेंटर में libapache2-mod-dnssd खोजें

एक बार जब आप इसे स्थापित कर लेते हैं, तो सिस्टम → वरीयताएँ → व्यक्तिगत फ़ाइल शेयरिंग पर जाएं और 'नेटवर्क पर सार्वजनिक फ़ाइलें साझा करें' बॉक्स को चेक करें।

वैकल्पिक शब्द

एक बार जब यह सब हो जाता है, तो आपको अपने नेटवर्क पर अन्य सभी कंप्यूटरों को देखने में सक्षम होना चाहिए जिन्होंने सार्वजनिक फ़ोल्डर के भीतर सार्वजनिक फ़ाइल साझाकरण की अनुमति दी है। बस स्थानों → नेटवर्क पर क्लिक करें , और वहां आपको सभी उपलब्ध कंप्यूटर और उनके साझा सार्वजनिक फ़ोल्डर देखना चाहिए।

सर्वर आइकन पर डबल-क्लिक करना आपके डेस्कटॉप पर प्रासंगिक सार्वजनिक फ़ोल्डर को माउंट करेगा।

वाया लिंक पाठ


क्या वे पैकेज एपाचे वेब सर्वर से जुड़े हैं? मेरे पास पहले से ही एक LAMP स्टैक के भाग के रूप में अपाचे स्थापित है और इसे तोड़ना नहीं चाहता।
एम्मी

1
शानदार खोज! (मैं जिस तरह से जवाब संपादित किया है, इस पैकेज एक निर्भरता के रूप में apache2.2-बिन स्थापित हो जाएगा, आसान इस तरह से लग रहा था)
Stefano Palazzo

1
@ ईएमवाईएस, संकुल आपके अपाचे संस्थापन को नहीं तोड़ेंगे। मैं उन और अधिक समस्याओं के साथ चल रहा हूँ।
RolandiXor

मुझे यह लिंक वास्तव में एक निर्देशिका साझा करने में मददगार लगा
MrMas

5

आप बस linux मशीन में एक simpleHTTP सर्वर चला सकते हैं और दूसरी मशीन पर उसी का उपयोग कर सकते हैं।

कदम :

  1. साझा करने के लिए पहले फ़ोल्डर से टर्मिनल शुरू करें।
  2. टर्मिनल में चलाएं - python -m SimpleHTTPServer
  3. अपने आईपी का उपयोग कर की जाँच करें ifconfig
  4. अन्य मशीन के आईपी पते के ब्राउज़र में दर्ज करें: 8000 (जैसे: यदि आपका आईपी 127.3.4.123 है तो ब्राउज़र में आप 127.3.4.123:8000 टाइप करें)

आपको डाउनलोड करने के लिए फ़ोल्डर में आवश्यक फाइलें मिलती हैं।


4
डाउनलोड! = साझा करें।
एमी

मेरे लिए यह एक बहुत अच्छा जवाब है, हालाँकि पाइथन 3 के लिए यह हैpython3 -m http.server
VanDavv

2

मेरा मानना ​​है कि एसएएमबीए पैकेजों को किसके तहत सूचीबद्ध किया गया है, या यह उनके विवरण का एक हिस्सा है। एक विकल्प के रूप में, आप वरीयताएँ-> फ़ाइल साझाकरण आज़मा सकते हैं, जो मेरा मानना ​​है कि एक अलग तंत्र का उपयोग करता है। सांबा हालांकि स्थापित करने के लिए एक आसान चीज है।


मैं इस धारणा (गलत, जाहिरा तौर पर) के तहत था कि सांबा को लिनक्स और विंडोज के बीच साझा करने की अनुमति है। मैं विंडोज के साथ साझा नहीं करना चाहता, केवल एक और लिनक्स मशीन के साथ।
एम्मीएस

नहीं, आप सही थे। दोनों मशीनों में सांबा जरूर होना चाहिए।
Stefano Palazzo

दोनों मशीनों को एसएमबी प्रोटोकॉल का उपयोग करने की आवश्यकता है। विंडोज यह एक तरीका है। लिनक्स मशीनें इसे सांबा के साथ करती हैं।
हेजहोग

2

आप "qweborf" स्थापित कर सकते हैं। यह HTTP पर निर्देशिका को साझा करेगा और अन्य होस्ट एक ब्राउज़र के साथ उपयोग करने में सक्षम होंगे।

यह वेबदाव को भी सक्षम कर सकता है और एक फाइलसिस्टम को पढ़ने / लिखने के लिए निर्देशिका को सक्षम कर सकता है (davfs2, KDE, Gnome2, OsX के साथ परीक्षण किया गया)।


2

यदि आप उबंटू में सहज एकीकरण चाहते हैं, और आप विंडोज संगतता में रुचि नहीं रखते हैं, तो एसएसएच आपका हकलबेरी है।

देखें कि मैं लैन पर दो लिनक्स मशीनों के बीच फाइलें कैसे साझा कर सकता हूं?

आपको SSH सर्वर को इसके साथ स्थापित करने की आवश्यकता हो सकती है:

sudo apt-get install openssh-server

अपने क्लाइंट पर फ़ाइल-प्रबंधक ऐप से, आप अपने सर्वर से प्राप्त कर सकते हैं:

sftp://servername.local

टर्मिनल या प्रोग्राम से फाइलों तक पहुंचने के लिए, sshfsक्लाइंट की फाइल सिस्टम में एक माउंट-पॉइंट बनाने के लिए उपयोग करें।


SSH पर फ़ाइलों की प्रतिलिपि बनाने के अन्य प्रोग्राम तरीके शामिल हैं scp, और (और भी बेहतर) rsync
नोबार

2

लिनक्स-ओनली नेटवर्किंग के लिए मैं SSHFS को देशी, स्थिर और बहुत तेज पाता हूं। मेरे पास SSH के ऊपर दो Xubuntu मशीन (18.04) शेयरिंग / होम फोल्डर हैं।

यहां बताया गया है कि कैसे इसे sshfs सेट करें और पासवर्ड प्रदान किए बिना fstab का उपयोग करके रिबूट के बाद स्वचालित रूप से पुन: कनेक्ट करें । रिमोट सस्पेंड / रिज्यूमे के बाद फिर से कनेक्ट करने के लिए सर्वर कुबंज़ेक को एक बड़ा धन्यवाद ।

मैं आपके द्वारा कनेक्ट किए जा रहे कंप्यूटर के लिए "स्थानीय मशीन - सर्फबॉक्स" का उपयोग करूंगा, और आपके द्वारा कनेक्ट किए जा रहे कंप्यूटर के लिए "रिमोट मशीन - डेबॉक्स"।

आपके द्वारा उपयोग किए जाने वाले उपयोगकर्ता नाम के साथ "रिमोटसुअर" को दूरस्थ मशीन पर लॉग इन करें, और "लोकल्यूसर" उस उपयोगकर्ता नाम के साथ जिसे आप स्थानीय मशीन से लॉग इन करते हैं। echo $USERदूरदराज और स्थानीय मशीनों पर टर्मिनल में उपयोगकर्ता नाम टाइप करने के लिए ।

इसके अलावा, अपने userID och groupID की जांच करें, वे दोनों 1000 होनी चाहिए।

समूह: उपयोगकर्ता id -g localuser :id -u localuser

1. अपने स्थानीय और दूरस्थ मशीनों के आईपी-पता प्राप्त करें।

hostname -I

मैं स्थानीय मशीन ('सर्फ़बॉक्स') के लिए 192.168.1.150 और रिमोट मशीन ('देवबॉक्स') के लिए 192.168.1.151 का उपयोग करूँगा

2. स्थानीय और दूरस्थ मशीनों पर पैकेज स्थापित करें

sudo apt install sshfs fuse ssh

3. एक समूह फ्यूज बनाएं और इसमें लोक्यूसर जोड़ें

समूह बनाएँ: sudo groupadd fuse

समूह में स्थानीयकरण जोड़ें: sudo usermod -a -G fuse $user

4. फ्यूज कॉन्फिग में "allow_other" को सक्षम करें

जब fstab में बढ़ते हैं, तो हमें इस विकल्प की आवश्यकता होगी

/etc/fuse.confअपने कमांड लाइन संपादक के साथ संपादित करें । इससे पहले हैशटैग निकालें user_allow_otherऔर सेव करें।

5. स्थानीय मशीन पर SSH कुंजी उत्पन्न करें

संकेत दिए जाने पर पासवर्ड न दें । बस खाली छोड़ने के लिए Enter दबाएं।

ssh-keygen -t rsa -C youremail@example.com

कीज़ को लोकल मशीन होम डाइरेक्टरी /.ssh फोल्डर में स्टोर किया जाता है

6. अपने स्थानीय मशीन सार्वजनिक SSH कुंजी को दूरस्थ मशीन में स्थानांतरित करें

ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151

आपको दूरस्थ मशीन पर दूरस्थ उपयोगकर्ता के लिए पासवर्ड के लिए कहा जाएगा। स्थानीय मशीन सार्वजनिक कुंजी अब फ़ाइल में जोड़ा जाता है ~ / .Ssh / अधिकृत_की दूरस्थ मशीन पर।

7. स्थानीय मशीन / mnt फ़ोल्डर पर एक निर्देशिका बनाएं जहां आप दूरस्थ मशीन / होम फ़ोल्डर को माउंट करेंगे।

कोई भी नाम चुनें जो आपके रिमोट मशीन के लिए समझ में आता है।

sudo mkdir /mnt/devboxhome

8. रिमोट मशीन / होम डायरेक्टरी को टर्मिनल से माउंट करें

Sshfs के लिए सिंटैक्स है

sshfs [user@]host:[directory] mountpoint [options]

हम प्रयोग करते हैं

sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa

उदाहरण: मान लेना "स्टीव" स्थानीय और दूरस्थ दोनों मशीनों पर उपयोगकर्ता नाम है

sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa

चूंकि आपने सार्वजनिक RSA कुंजी को दूरस्थ मशीन में स्थानांतरित कर दिया है, इसलिए आपको दूरस्थ पासवर्ड के लिए संकेत नहीं दिया जाना चाहिए।

आपको एक चेतावनी मिलेगी कि मशीन पर भरोसा नहीं किया गया है और संकेत दिया गया है कि क्या इसे जोड़ा जाना चाहिए। रिमोट मशीन को विश्वसनीय के रूप में जोड़ें।

9. सत्यापित करें: दूरस्थ मशीन / होम निर्देशिका ब्राउज़ करें

स्थानीय मशीन पर टर्मिनल में अब आप / mnt / devboxhome के तहत रिमोट मशीन / होम डायरेक्टरी को सूचीबद्ध कर सकते हैं

cd /mnt/devboxhome ls

या निर्देशिका को ब्राउज़ करने के लिए Nautilus का उपयोग करें। महान।

10. रिबूट के बाद पुन: कनेक्ट करने में सक्षम करें

हम ऐसा करने के लिए / etc / fstab में एक प्रविष्टि जोड़ेंगे। आप अपने स्थानीय मशीन userid och groupid की आवश्यकता होगी - यदि आपने इसे याद किया तो इंट्रो देखें। अपने कमांड लाइन संपादक के साथ / etc / fstab संपादित करें और / etc / fstab के अंत में इन दो पंक्तियों को जोड़ें

# Mount devbox at boot remoteuser@192.168.1.151:/home/[remoteuser]/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

  • जब तक यह रिमोट मशीन पर निर्देशिका को माउंट करने का प्रयास नहीं करता तब तक देरी_कनेक्ट कर्नेल प्रतीक्षा करता है।
  • जब से हम बूट के दौरान रूट के रूप में चल रहे हैं हम में बताने की keyfile जो localuser होम निर्देशिका में संग्रहित है।
  • allow_other - वास्तविक माउंटिंग करने वाले के अलावा अन्य उपयोगकर्ता माउंटेड फ़ाइल सिस्टम तक पहुंच सकते हैं।
  • idmap = उपयोगकर्ता - केवल कनेक्ट करने वाले उपयोगकर्ता का यूआईडी अनुवाद करें
  • फिर से कनेक्ट करें, ServersLiveInterval, ServerAliveCountMax - ssh भेजता है, जो जीवित रहता है। यदि ServerAliveCountMaxलगातार पिंग विफल होते हैं, तो पुन: कनेक्ट करें।

स्थानीय और दूरस्थ मशीनों में एक उपयोगकर्ता लॉगिंग के रूप में होगा:

steve@192.168.1.151:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

महत्वपूर्ण : दूरस्थ निर्देशिका के बाद एक स्लैश: steve@192.168.1.151: / घर / स्टीव /

बचाने / आदि / fstab और ...।

11. रीबूट

अब आपको स्थानीय मशीन में दूरस्थ मशीन / होम डायरेक्टरी तक पहुँचने में सक्षम होना चाहिए / mnt / devboxhome Nautilus में आप इस फ़ोल्डर को स्थल बार में खींच सकते हैं

12. बार-बार

स्थानीय मशीन साझा की / घर निर्देशिका बनाने के लिए रिमोट मशीन पर फिर से उसी चरण के माध्यम से जाओ।


अच्छा जवाब। मैं अनजान था कि fstab में sshfs फाइल सिस्टम को माउंट किया जा सकता है, इसके लिए धन्यवाद।
ऑर्गेनिक मार्बल

0

फ़ाइलें साझा करने का मेरा तरीका:

sudo npm install -g http-server

उस फ़ोल्डर पर जाएं जिसे आप साझा करना चाहते हैं, टर्मिनल खोलें और इस कमांड को चलाएं:

http-server -o 

आप उस आदेश के आउटपुट द्वारा उल्लिखित IP पते पर एक ही नेटवर्क की सभी मशीनों में उस फ़ोल्डर तक पहुँच सकते हैं।


0

zx81roadkill सही है, "sshfs" का उपयोग करें। सांभा बकवास है, एनएफएस कचरा है। Sshfs कैलिफोर्निया में मेरे कंप्यूटर से पूरी तरह से प्रयोग करने योग्य है, अर्जेंटीना में एक कंप्यूटर के लिए। यह पूरी तरह से सुरक्षित है, यह कुछ और के समान ही तेज है (मेरे पास एक गिबिट लाइन है)।

Samba Samba और NFS की तुलना में Sashfs अपेक्षाकृत नया है, लेकिन यह या तो बहुत बेहतर है। इसे चलाने का एक उदाहरण है (यह मानते हुए कि आपके पास सभी पैकेज स्थापित हैं)

# mount "username"'s home directory on "machine"
  mkdir -p /tmp/my_mount ; sshfs username@machine: /tmp/my_mount
# mount the root directory on "machine" (note: if "username" on "machine"
# can't write to the file, neither will you.  You have "username"'s privs
  mkdir -p /tmp/my_mount ; sshfs username@machine:/ /tmp/my_mount
# mount the directory "Videos" on "username"'s account on "machine"
  mkdir -p /tmp/my_mount ; sshfs username@machine:Videos /tmp/my_mount

एक बार जब आप पासवर्ड दर्ज करते हैं, तो / tmp / my_mount में "मशीन" पर "उपयोगकर्ता नाम" की सभी फाइलें होंगी। सांबा या एनएफएस के साथ इधर-उधर परेशान न हों। वे बट में बस एक व्यर्थ दर्द को कॉन्फ़िगर करने या सेटअप करने के लिए कर रहे हैं।

अनमाउंट करने के लिए:

fusermount -u /tmp/my_mount

और यदि वह विफल रहता है (जो भी कारण हो):

umount -f /tmp/my_mount

आरोह बिंदु के माध्यम से भेजे गए सभी डेटा एन्क्रिप्टेड हैं। यह मानक क्यों नहीं है, पूरी तरह से स्वीकृत तरीका है, दूरस्थ मशीन पर माउंट करना मेरे लिए एक रहस्य है। यह सादगी के मामले में किसी भी अन्य विधि से बहुत बेहतर है।

यदि आपको कच्ची गति की आवश्यकता है, तो शायद जंक सांबा का वह फूला हुआ टुकड़ा ऐसा होगा, या एनएफएस। मुझे नहीं पता, मेरे लिए 100 एमबी / एस काफी अच्छा है।

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