리눅스2023. 8. 11. 17:49

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/623288 (2019.1.7)

리눅스 민트에서 NFS(Network File System, 네트워크 파일 시스템) 서버 설정 절차다. 리눅스 민트가 우분투 계열 배포판이므로, 데비안/우분투 계열 배포판은 다 비슷할 것이다.

우선 nfs-kernel-server 패키지를 설치하자. 터미널창에서 아래와 같이 작업

# S/W 저장소 정보 갱신
sudo apt-get update

# nfs-kernel-server 설치
sudo apt-get install nfs-kernel-server

NFS로 공유할 디렉토리를 만들자. 여기서는 /var/nfs_exports로 했다. 접근 권한은 별도로 설정하므로 디렉토리 권한은 모두 접근 가능한 777로 설정.

# 디렉토리 생성(/var 디렉토리 하위이므로 root 권한 필요)
sudo mkdir /var/nfs_export

# 접근권한 설정
sudo chmod 777 /var/nfs_export

이제 /etc/exports 파일에 공유할 디렉토리와 원격에서 접속할 클라이언트를 지정해 준다.

# /etc/exports 파일 편집
sudo vi /etc/exports

내용은 "디렉토리 클라이언트1(옵션) 클라이언트2(옵션)..." 이런 식이다. 예를 들어 클라이언트 192.168.10.20은 읽기/쓰기(rw), 192.168.10.21은 읽기(ro) 권한을 주려면 아래와 같은 내용을 /etc/exports 파일에 추가한다.

/var/nfs_export 192.168.10.20(rw) 192.168.10.21(ro)

클라이언트 범위는 IP주소(예: 192.168.10.20), 호스트명(예: john.com), IP주소 범위(예: 192.168.10.0/24) 등을 지정할 수 있다. 만약 모든 접속자에 대해 허용하고 싶다면 "*" 표시를 사용하면 되겠다.

# 192.168.10.20에는 rw, 그 외 나머지 모두에게 ro 권한
/var/nfs_export 192.168.10.20(rw) *(ro)

rw, ro 외에도 여러가지 옵션이 더 있는데, 특별히 지정하지 않으면 기본으로 설정되는 부분들이 있고, 직접 설정해 줄 수도 있다. 예를 들어 원격 접속자를 모두익명 사용자(nobody)로 간주하여 권한을 제한하고 싶다면 아래의 예시처럼 all_squash 옵션을 추가할 수 있다.

# 192.168.10.22에 rw, all_squash 옵션 추가
/var/nfs_export 192.168.10.22(rw,all_squash)

옵션에 대한 자세한 내용은 man 페이지를 참고하면 되겠다.

# /etc/exports 관련 옵션 확인
man exports

/etc/exports 파일 편집이 끝났으면, exportfs 명령어를 통해서 변경 내용을 반영하고 nfs-kernel-server 서비스를 재시작한다.

# /etc/exports 변경 적용(-a 옵션)
sudo exportfs -a

# 변경 사항 확인(현재 상태 표시, -s 옵션)
sudo exportfs -s

# nfs 서비스 재시작
sudo systemctl restart nfs-kernel-server

클라이언트에서는 아래와 같이 작업해서 접속하면 되겠다. 예를 들어 위의 NFS 서버 IP주소가 192.168.10.2라고 가정하면 아래와 같이 작업.

# NFS 공유 디렉토리를 마운트할 디렉토리 생성
mkdir ~/nfs_dir

# NFS 마운트
sudo mount -t nfs 192.168.10.2:/var/nfs_export/ ~/nfs_dir

728x90
Posted by 반달가면