sshfs mount, o sudo recebe permissão negada

44

Estou usando sshfs para montar uma pasta com alguns projetos python sobre ssh no meu diretório ~/ .

$ mkdir -p ~/mount/my-projects
$ sshfs [email protected]:/home/user/my-projects ~/mount/my-projects

Eu posso executar a maioria dos comandos como seria de esperar:

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

Mas se eu tentar fazer algo com sudo , ele falhará com a permissão negada:

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

O que estou realmente tentando realizar é testar um script de instalação do pacote python na minha máquina local:

$ cd ~/mount/my-projects/some-python-project
$ sudo python setup.py install
    
por cpburnz 28.12.2012 / 15:25

3 respostas

77

Eu acredito que você precisa usar a opção allow_other para sshfs. Para fazer isso, você deve chamá-lo com o sudo, da seguinte maneira: -

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

Sem essa opção, apenas o usuário que executou o sshfs pode acessar a montagem. Esta é uma restrição de fusível. Mais informações estão disponíveis digitando man fuse .

Você também deve notar que (pelo menos no Ubuntu) você precisa ser um membro do grupo 'fuse', caso contrário o comando acima se queixará de não poder acessar /etc/fuse.conf quando executado sem 'sudo'. / p>     

por 28.12.2012 / 16:17
3

sshfs é um processo do usuário, portanto, não há necessidade de executá-lo com sudo .

Se você executá-lo como sudo e usar a autenticação de chave SSH, a chave será pesquisada em /root/.ssh e não no /home/myuser/.ssh do usuário.

O mesmo se aplica ao arquivo ~/.ssh/config que sshfs é capaz de usar.

Se você tem um ~/.ssh/config como:

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

você pode montar seu host remoto como um usuário normal com:

sshfs remotehost: local_dir

Para executar na raiz, você pode anexar -o IdentityFile /home/myuser/.ssh/id_rsa ao comando "raw" sshfs ou criar /root/.ssh/config com o caminho completo para a chave SSH do usuário:

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

Agora, sshfs remotehost: local_dir também funcionará na raiz.

With your .ssh/config in place you can copy entire folders between the hosts with (remote to local) scp -r remotehost:remotedir localdir or (local to remote) scp -r localdir remotehost:remotedir, so for a single one-off operation, you might not even need sshfs.

If you use a relative remote path as in remotehost:remotedir then remotedir will be relative to the user's home folder, i.e. remotehost:remotedir is equivalent to remotehost:/home/myuser/remotedir

    
por 11.10.2017 / 00:26
1

O que resolveu o problema para mim foi adicionar a opção allow_other ao comando da seguinte forma:

$ sshfs -o allow_other [email protected]:/home/user/my-projects ~/mount/my-projects

então você pode receber o erro:

option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf to solve that head to /etc/fuse.conf with your favorite text editor and uncomment (delete the # behind) user_allow_other

Se isso resolvesse o problema e você pudesse executar sshfs com sucesso, ótimo! Se não, você deve tentar adicionar seu usuário ao grupo de fusíveis com este comando:

$ usermod -a -G mark fuse

e se resultar em erro dizendo que o grupo de fusíveis não existe, você pode facilmente criar esse grupo por:

$ sudo groupadd mynewgroup
    
por 23.07.2018 / 00:15

Tags