Sshfs माउंटपॉइंट के लिए उचित अधिकार सेट करें ताकि इसे सांबा के साथ साझा किया जा सके


12

मेरे पास एक डोमेन होस्टर है जो एसएसएच के माध्यम से पहुंच प्रदान करता है।

मेरे मंच हैं:

  • जेंटू 2.6.36-आर 5
  • विंडोज (XP / Vista / 7)

मैं अपने विंडोज पर काम करता हूं, मैं Gentoo का उपयोग करता हूं ऐसा करने के लिए सभी जादू विंडोज नहीं कर सकता है।

इसलिए मैं अपने डोमेन /mnt/mydomain.com के लिए दूरस्थ सार्वजनिक निर्देशिका को माउंट करने के लिए sshfs का उपयोग करता हूं। प्रमाणीकरण कुंजियों के माध्यम से किया जाता है, इसलिए आलसी मुझे हर बार अपने पासवर्ड में टाइप करने की ज़रूरत नहीं है।

चूंकि मैं विंडोज़ पर अपनी कोडिंग करता हूं, और मैं हर समय परिवर्तित फ़ाइलों को अपलोड / डाउनलोड नहीं करना चाहता, इसलिए मैं इस /mnt/mydomain.com को सांबा शेयर के माध्यम से एक्सेस करना चाहता हूं।

इसलिए मैंने सांबा में / mnt को साझा किया, mydomain.com को छोड़कर सभी माउंट मेरे विंडोज एक्सप्लोरर पर सूचीबद्ध हैं।

मेरे सिद्धांत हैं:

  1. sshfs ने माउंटपॉइंट uid / gid को उस चीज़ के लिए सेट नहीं किया है जो सांबा से अपेक्षा करता है
  2. सांबा को पता नहीं है कि इसमें यूआईडी / जीआईडी ​​शामिल है जिसे /mnt/mydomain.com पर सेट किया गया है।
  3. उपरोक्त सभी गलत है, और मुझे नहीं पता।

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

gentoo ~ # ls -lah /mnt
total 20K
drwxr-xr-x  9 root  root  4.0K Mar 26 16:15 .
drwxr-xr-x 18 root  root  4.0K Mar 26  2011 ..
-rw-r--r--  1 root  root     0 Feb  1 16:12 .keep
drwxr-xr-x  1 root  root     0 Mar 18 12:09 buffer
drwxr-s--x  1 68591 68591 4.0K Feb 16 15:43 mydomain.com
drwx------  2 root  root  4.0K Feb  1 16:12 cdrom
drwx------  2 root  root  4.0K Feb  1 16:12 floppy
drwxr-xr-x  1 root  root     0 Sep  1  2009 services
drwxr-xr-x  1 root  root     0 Feb 10 15:08 www

/etc/samba/smb.conf

[mnt]
comment = Mount points
writable = yes
writeable = yes
browseable = yes
browsable = yes
path = /mnt

/ Etc / fstab

sshfs#myusername@mywebhotel.com:/home/to/pub/dir/ /mnt/mydomain.com/ fuse comment=sshfs,noauto,users,exec,uid=0,gid=0,allow_other,reconnect,follow_symlinks,transform_symlinks,idmap=none,SSHOPT=HostBasedAuthentication 0 0

एक आसान पढ़ने के लिए:

  • myusername@mywebhotel.com
  • / घर / के लिए / पब / dir /
  • /mnt/mydomain.com/

विकल्प:

  • टिप्पणी = sshfs
  • noauto
  • उपयोगकर्ताओं
  • कार्यकारी
  • uid = 0
  • gid = 0
  • allow_other
  • पुनः कनेक्ट
  • follow_symlinks
  • transform_symlinks
  • idmap = कोई भी
  • SSHOPT = HostBasedAuthentication

मदद!


IIRC, HostbasedAuthenticationका उपयोग करने के लिए अनुशंसित नहीं है (उपयोगकर्ता-आधारित PubkeyAuthenticationको प्राथमिकता दी जाती है)
user1686

SSHFS version 2.8 fuse: unknown option 'SSHOPT=HostBasedAuthentication'
टॉम हेल

जवाबों:


11

sshfsFUSE- आधारित फ़ाइल सिस्टम है, और FUSE परत अन्य उपयोगकर्ताओं को सुरक्षा उद्देश्यों के लिए डिफ़ॉल्ट रूप से अपने माउंट तक पहुंचने की अनुमति नहीं देता है। आपके पास allow_otherविकल्प हैं, लेकिन इसे तब तक नजरअंदाज किया जाएगा जब तक कि आप भी /etc/fuse.confशामिल करने के लिए संपादित नहीं करते user_allow_other


1
"Ps aux" निष्पादित करते समय, बाएं स्तंभ sshfs और smbd दोनों प्रक्रियाओं के लिए रूट बताता है। मैं इसे "विशेषाधिकार" देता हूं क्योंकि दोनों एक ही विशेषाधिकार के साथ चलते हैं। Ls -lah आउटपुट से, आप देखते हैं कि uid रूट नहीं है, यह uid sshfs द्वारा सेट किया गया है, लेकिन मैं इसे सेट नहीं कर सकता, कम से कम विकल्प में uid / gid को बदलने के साथ नहीं। मेरा मानना है कि किसी भी तरह साम्बा लगता है कि यह यूआईडी / gid 68591. (मेरी ओर से कुछ भ्रम की स्थिति स्पष्ट करने के लिए कोशिश कर रहा है।) के साथ कि विशिष्ट निर्देशिका बाहर करने के लिए है
CS01

@ CS01: "मास्टर" smbd रूट के रूप में चलता है, लेकिन यह कनेक्शन हैंडलर के लिए सही नहीं है - यदि आप SMB को "jim" के रूप में लॉग इन करते हैं, तो आपकी smbd प्रक्रिया भी "jim" के UID पर स्विच हो जाती है।
user1686

1
आपको विकल्प के माध्यम से अपने इच्छित उपयोगकर्ता (यू) के लिए यूआईडी और / या जीआईडी ​​को मैप करने की आवश्यकता है, यूआईडी = <यूआईडी>, जीआईडी ​​= <जीआईडी>।
सूइसबर्गर.देव।

सभी उत्तर के लिए धन्यवाद। इसलिए संक्षेप में, उबंटू के हालिया संस्करण पर परीक्षण के बाद: 1. अद्यतन /etc/fuse.conf; 2. तीन sshfs कमांड विकल्प निर्दिष्ट करें ( -o allow_other -o uid=<UID> -o gid=<GID>)। ऐसा लगता है कि पुनरारंभ करने की कोई आवश्यकता नहीं है smbd(लेकिन मुझे यकीन नहीं है कि जब smbdभी मैं फिर से शुरू करूंगा )।
ब्रिन

2

आप सीधे विंडोज़ से sshfs माउंट क्यों नहीं करते?
उस के लिए नि: शुल्क समाधान के कुछ जोड़े हैं ( अधिक जानकारी के लिए यहां और यहां देखें )।


1
वाह, यह उपकरण बहुत अच्छा है!
सीएस 01

वे बहुत आशाजनक नहीं दिखते हैं और निलंबित हैं, कम से कम अब, 3 साल के बाद :) क्या आपके पास उनके साथ कोई स्थिरता का अनुभव है?
स्विजर्बर.देव।

0

जैसा कि आपके सामान्य smb शेयर काम कर रहे हैं, मैं सांबा कॉन्फिग के बारे में एक शब्द भी ढीला नहीं करता हूं, क्योंकि आप सामान्य फ़ोल्डर साझा करने के लिए ठीक उसी तरह sshfs mounts कर सकते हैं। लेकिन sshfs के माध्यम से SSH शेयर को बढ़ाना केवल स्थानीय मशीन एक्सेस की तुलना में विशेष है।

Fstab के माध्यम से अपना हिस्सा बढ़ाने के लिए, आप इस लाइन को / etc / fstab में डाल सकते हैं और शेयर को REQUEST पर माउंट कर सकते हैं। यह कमांड लाइन के c & p से अधिक सुविधाजनक है।

सामान्य आदि / fstab लाइन:

**<USERNAME>**@<SERVER>:<REMOTE_PATH> /MOUNT/POINT fuse.sshfs noauto,users,idmap=user,IdentityFile=/path/to/.ssh/id_rsa,allow_other,reconnect,port=22,uid=<UID>,gid=<GID> 0 0

noauto: आपको इसे mount /MOUNT/POINT अन्य सभी सूचनाओं के माध्यम से माउंट करने की आवश्यकता है, जो इस लाइन से / etc / fstab में खींची गई हैं

उपयोगकर्ता: सामान्य उपयोगकर्ताओं को इस माउंट प्रविष्टि को माउंट करने की अनुमति देता है

रीकनेक्ट: स्टैंडबाय, आदि के बाद आहरण को फिर से जोड़ता / हटाता है

uid = / gid =: दूरस्थ uid / gid को इस स्थानीय uid / gid पर मैप करता है

उदाहरण:

foo@example.org:/home/foo/music ~/foos_music fuse.sshfs noauto,users,idmap=user,IdentityFile=/home/foo/.ssh/id_rsa,allow_other,reconnect,port=22,uid=foo,gid=users 0 0

आपको sshfs माउंटिंग [ https://wiki.archlinux.org/index.php/Sshfs] के बारे में जानना होगा

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