sshfs mount, sudo reddedildi izin aldı


53

Dizini sshfsssh üzerinde bazı python projeleri ile bir klasör monte etmek için kullanıyorum ~/.

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

Beklenildiği gibi çoğu komutu gerçekleştirebilirim:

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

Ama ben bir şey yapmaya çalışırsam sudo, reddedilme izni ile başarısız olur:

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

Aslında başarmaya çalıştığım şey, yerel makinemde bir python paketi yükleme komut dosyasını sınamaktır:

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

Yanıtlar:


93

Bu allow_otherseçeneği sshfs için kullanmanız gerektiğine inanıyorum . Bunu yapmak için, sudo ile aşağıdaki gibi çağırmalısınız: -

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

Bu seçenek olmadan, yalnızca sshfs'i çalıştıran kullanıcı mount'a erişebilir. Bu bir sigorta kısıtlamasıdır. Yazarak daha fazla bilgi alabilirsiniz man fuse.

Ayrıca (en azından Ubuntu'da) 'sigorta' grubunun bir üyesi olmanız gerektiğini unutmayın; aksi halde yukarıdaki komut /etc/fuse.conf'sudo' olmadan çalıştırıldığında erişemediğinizden şikayetçi olacaktır .


2
İyi ilk cevap!
slm

13
Ayrıca yalnızca allow_rootizin verme seçeneğine de bakın root. Ancak, bu seçeneklerin, bir user_allow_othersatır eklemediğiniz sürece varsayılan olarak kök ile sınırlı olduğunu unutmayın /etc/fuse.conf.
Stéphane Chazelas

7

sshfsbir kullanıcı sürecidir, bu nedenle çalıştırmaya gerek yoktur sudo.

Eğer SSH anahtar kimlik doğrulaması sudo olarak çalıştırın ve kullanmak yaparsanız, o zaman anahtar altında aranır /root/.sshve olmayan kullanıcı adlı altında /home/myuser/.ssh.

Aynısı kullanabilen ~/.ssh/configdosya için de geçerlidir sshfs.

Bir ~/.ssh/configbenzeri varsa:

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

ardından uzaktaki ana makinenizi normal bir kullanıcı olarak aşağıdakilerle monte edebilirsiniz:

sshfs remotehost: local_dir

Kök altında çalıştırmak -o IdentityFile /home/myuser/.ssh/id_rsaiçin 'raw' sshfskomutuna ekleyebilir veya /root/.ssh/configkullanıcı SSH anahtarına tam yol ile oluşturabilirsiniz :

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

Şimdi sshfs remotehost: local_dirde root altında çalışacak.

Parmağınızı ile .ssh/configyerinde (uzaktan yerel) ile ana bilgisayarlar arasındaki tüm klasörleri kopyalayabilir scp -r remotehost:remotedir localdirveya (uzaktan yerel) scp -r localdir remotehost:remotedir, tek tek seferlik kullanım için böylece, hatta gerekmeyebilir sshfs.

Gibi Akrabası uzak yol kullanırsanız remotehost:remotediro zaman remotediryani kullanıcının giriş klasörü, göreli olacak remotehost:remotedireşdeğerdirremotehost:/home/myuser/remotedir


1

Sorunu benim için çözen allow_otherşey şu şekilde bir komuta seçeneği eklemekti :

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

o zaman hatayı alabilirsiniz:

seçenek allow_other, yalnızca 'user_allow_other', /etc/fuse.conf 'da ayarlanmışsa, o kafayı en sevdiğiniz metin editörü ve uncomment ile /etc/fuse.conf' a çözmek için izin verilir (# arkasını silin) user_allow_other

Eğer bu sorunu çözerse ve sshfsbaşarılı bir şekilde kaçabiliyorsanız, harika! Aksi halde, bu komutla kullanıcıyı sigorta grubuna eklemeyi denemelisiniz:

$ usermod -a -G mark fuse

ve sigorta grubunun bulunmadığını söylerken hatayla sonuçlanırsa, şu grubu kolayca oluşturabilirsiniz:

$ sudo groupadd mynewgroup
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.