Ubuntu(linux) 서버에서 원격 서버와 디렉토리를 공유하고자 할 때 sshfs
를 이용하여 공유할 수 있다.
sshfs
가 설치돼 있지 않다면 apt
툴을 이용하여 설치해준다.
$ sudo apt install sshfs
공유 명령어는 다음과 같다.
$ sshfs <원격서버 계정>@<IP>:<공유할 디렉토리> <내 디렉토리>
예)
$ sshfs tkfrn4799@1.2.3.4:/targetdir /mydir
공유가 설정되면 원격 서버의 디렉토리에 들어있는 파일을 지정한 내 디렉토리에서도 확인할 수 있다.
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 137G 24G 106G 19% /
...
tkfrn4799@1.2.3.4:/targetdir 7.3T 103G 6.8T 2% /mydir
$ fusermount -u ./<내 디렉토리>
공유 설정 이후, 기본적으로 공유를 진행한 계정 이외의 계정의 접근은 불가하다. (공유 때 사용한 원격 서버 계정과는 상관없음)
예를 들어 'user111'이라는 계정으로 공유를 설정했다면,
user_111@my-pc:~$ sshfs ~ /mydir
다른 계정으로는 공유된 디렉토리에 접근이 불가능하다.(root 포함)
user_222@my-pc:~$ cd /mydir
-bash: cd: test: Permission denied
root@my-pc:~# cd /mydir
-bash: cd: test: Permission denied
공유 설정 시 allow_other
옵션을 부여하면 공유를 설정한 계정 이외의 다른 계정도 접근이 가능하다.
user_111@my-pc:~$ sshfs tkfrn4799@1.2.3.4:/targetdir /mydir -o allow_other
이런 에러가 날 수도 있다.
fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
/etc/fuse.conf
를 수정해주어야 한다.
$ sudo vi /etc/fuse.conf
아래 구문을 주석해제 한다.
# user_allow_other
이후 다시 allow_other 옵션을 주어 공유 설정을 하면 다른 계정에서도 해당 디렉토리에 접근이 가능하다.