sshfs 마운트, sudo가 권한 거부 됨


53

sshfsssh를 통해 일부 파이썬 프로젝트가있는 폴더를 내 ~/디렉토리 에 마운트하는 데 사용 하고 있습니다 .

$ 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로 호출해야합니다.

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.
Stéphane Chazelas

7

sshfsuserland 프로세스이므로로 실행할 필요가 없습니다 sudo.

당신이 SSH 키 인증을 sudo를로 실행하고 사용한다면, 다음 키 아래에 검색됩니다 /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'raw' sshfs명령을 추가 하거나 /root/.ssh/config사용자 SSH 키의 전체 경로를 작성하십시오.

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

그런 다음 오류가 발생할 수 있습니다.

allow_other 옵션은 /etc/fuse.conf에 'user_allow_other'를 설정 한 경우에만 선호하는 텍스트 편집기로 주석을 풀고 /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.