sshfs মাউন্ট, sudo অনুমতি অস্বীকার পায়


53

আমি sshfsআমার ~/ডিরেক্টরিতে ssh ওপরে কিছু অজগর প্রকল্পের সাথে একটি ফোল্ডার মাউন্ট করতে ব্যবহার করছি ।

$ mkdir -p ~/mount/my-projects
$ sshfs user@example.com:/home/user/my-projects ~/mount/my-projects

আমি প্রত্যাশার সাথে সর্বাধিক আদেশগুলি সম্পাদন করতে পারি:

$ ls ~/mount/my-projects
some-python-project

তবে আমি যদি এর সাথে কিছু করার চেষ্টা করি তবে sudoঅনুমতি ব্যতীত এটি ব্যর্থ হয়:

$ sudo ls ~/mount/my-projects
ls: cannot access /home/user/mount/my-projects: Permission denied

আমি যা অর্জন করতে চাইছি তা হ'ল আমার স্থানীয় মেশিনে পাইথন প্যাকেজ ইনস্টলেশন স্ক্রিপ্টটি পরীক্ষা করা:

$ cd ~/mount/my-projects/some-python-project
$ sudo python setup.py install

উত্তর:


93

আমি বিশ্বাস করি আপনার allow_othersshfs বিকল্প ব্যবহার করা উচিত। এটি করার জন্য, আপনাকে নিম্নলিখিত হিসাবে এটি সুডো দিয়ে কল করা উচিত: -

sudo sshfs -o allow_other user@myserver:/home/user/myprojects ~/mount/myprojects

এই বিকল্পটি ব্যতীত, কেবল sshfs চালানো ব্যবহারকারীই মাউন্টটি অ্যাক্সেস করতে পারবেন। এটি একটি ফিউজ বাধা। আরও তথ্য টাইপ করে উপলব্ধ man fuse

আপনার আরও খেয়াল করা উচিত (উবুন্টুতে কমপক্ষে) আপনাকে 'ফিউজ' গ্রুপের সদস্য হওয়া দরকার, অন্যথায় উপরের কমান্ডটি /etc/fuse.conf'সুডো' ছাড়া দৌড়ে যাওয়ার সময় অ্যাক্সেস না করার বিষয়ে অভিযোগ করবে ।


2
ভাল উত্তর!
slm

13
শুধুমাত্র allow_rootঅনুমতি দেওয়ার বিকল্পটিও দেখুন root। তবে দয়া করে নোট করুন যে এই বিকল্পগুলি ডিফল্টরূপে রুটে সীমাবদ্ধ তবে আপনি যদি কোনও user_allow_otherলাইন যোগ না করেন /etc/fuse.conf
স্টাফেন চেজেলাস

7

sshfsএকটি ইউজারল্যান্ড প্রক্রিয়া, সুতরাং এটি দিয়ে চালানোর দরকার নেই sudo

আপনি উবুন্টু যেমন এটি চালানোর এবং SSH কী প্রমাণীকরণ ব্যবহার না করেন, তাহলে কী অধীনে অনুসন্ধান করা হবে /root/.sshএবং না আপনার ব্যবহারকারীর অধীনে /home/myuser/.ssh

একই ~/.ssh/configফাইল প্রয়োগ করতে sshfsসক্ষম যা প্রযোজ্য ।

আপনার ~/.ssh/configমত যদি থাকে:

Host remotehost
    HostName 111.22.33.44
    User root
    Port 1234
    IdentityFile ~/.ssh/id_rsa

তারপরে আপনি আপনার সাধারণ ব্যবহারকারী হিসাবে আপনার দূরবর্তী হোস্টটি মাউন্ট করতে পারেন:

sshfs remotehost: local_dir

মূলের নীচে চলতে আপনি -o IdentityFile /home/myuser/.ssh/id_rsa'কাঁচা' sshfsকমান্ডে যুক্ত হতে পারেন, বা /root/.ssh/configআপনার ব্যবহারকারীর এসএসএইচ কী-এর পূর্ণ পথ দিয়ে তৈরি করতে পারেন :

Host remotehost
    HostName 111.22.33.44
    User root
    Port 1234
    IdentityFile /home/myuser/.ssh/id_rsa

এখন sshfs remotehost: local_dirমূলের নীচেও কাজ করবে।

আপনার .ssh/configস্থানে আপনি সম্পূর্ণ ফোল্ডারগুলি (দূরবর্তী থেকে স্থানীয়) scp -r remotehost:remotedir localdirবা (স্থানীয় থেকে দূরবর্তী) এর সাহায্যে হোস্টগুলির মধ্যে অনুলিপি করতে পারেন scp -r localdir remotehost:remotedir, তাই একক এক-অফ অপারেশনের জন্য আপনার এমনকি প্রয়োজনও পড়বে না sshfs

যদি আপনি remotehost:remotedirসেই হিসাবে আপেক্ষিক দূরবর্তী পাথ ব্যবহার করেন তবে remotedirএটি ব্যবহারকারীর হোম ফোল্ডারের সাথে সম্পর্কিত হবে, remotehost:remotedirযার সমতুল্যremotehost:/home/myuser/remotedir


1

আমার জন্য যে সমস্যার সমাধান হয়েছে তা হ'ল allow_otherকমান্ডটিতে বিকল্পটি যুক্ত করেছিল :

$ sshfs -o allow_other user@example.com:/home/user/my-projects ~/mount/my-projects

তাহলে আপনি ত্রুটি পেতে পারেন:

আপনার প্রিয় পাঠ্য সম্পাদক এবং অসাধারণতার সাথে সেই মাথাটি /etc/fuse.conf এ সমাধান করতে 'ব্যবহারকারী_নীল_ইথর' সেট করা থাকলে কেবল 'ব্যবহারকারী_নীল_ইথর' বিকল্পটি অনুমতি দেওয়া হবে (পিছনের # টি মুছুন) user_allow_other

এটি যদি সমস্যার সমাধান করে এবং আপনি sshfsসফলভাবে দৌড়াতে পারেন , দুর্দান্ত! যদি না হয় তবে এই আদেশটি দিয়ে আপনার ব্যবহারকারীকে ফিউজ গ্রুপে যুক্ত করার চেষ্টা করা উচিত:

$ usermod -a -G mark fuse

এবং যদি এটির ত্রুটির ফলে ফিউজ গ্রুপের অস্তিত্ব নেই বলে ফলাফল হয় তবে আপনি সহজেই এই গোষ্ঠীটি তৈরি করতে পারেন:

$ sudo groupadd mynewgroup
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.