NFS 공유 디렉터리와 클라이언트 마운트 설정하기

목차

리눅스 서버의 디렉터리를 NFS로 공유하고 클라이언트에서 마운트하는 방법입니다. 원노트의 no_root_squash와 rc.local 자동 마운트 예제를 기본 root_squash·fstab 방식으로 정리했습니다. 서버와 클라이언트의 UID·GID 정책도 먼저 확인합니다.

서버 공유 설정

양쪽에 nfs-utils를 설치합니다. 서버에서 실제 공유 디렉터리의 소유자·권한을 서비스 요구에 맞춰 준비하고 /etc/exports에 허용할 클라이언트 주소를 지정합니다. 옵션 괄호 앞에 불필요한 공백을 넣지 않습니다.

TERMINAL / CONFIG
sudo dnf install nfs-utils
TERMINAL / CONFIG
/home/lieper/data 192.0.2.20(rw,sync,root_squash)

root_squash는 클라이언트 root를 익명 사용자로 매핑합니다. 모든 요청을 동일 계정으로 매핑하는 all_squash와 다릅니다. 특별한 요구 없이 no_root_squash를 쓰면 원격 root에 강한 권한을 줄 수 있습니다.

반영과 서버 확인

TERMINAL / CONFIG
sudo exportfs -rav
sudo exportfs -v
sudo systemctl enable --now nfs-server

NFS 버전에 맞는 방화벽·SELinux 정책을 적용합니다. v3의 rpcbind·mountd 요구와 v4의 경로·서비스 요구가 다를 수 있으며 showmount 결과만으로 v4 공유의 정상 여부를 단정하지 않습니다.

클라이언트 마운트

TERMINAL / CONFIG
sudo mkdir -p /mnt/lieper-data
sudo mount -t nfs server.example.com:/home/lieper/data /mnt/lieper-data
findmnt /mnt/lieper-data
df -hT /mnt/lieper-data

읽기·쓰기는 실제 사용할 일반 계정에서 시험합니다. 권한 오류는 서버 경로의 UID·GID·export 정책을 함께 확인합니다. 디렉터리를 무조건 777로 풀지 않습니다.

부팅 후 마운트

/etc/fstab에 네트워크 의존성을 고려한 항목을 작성합니다. 서비스가 공유 경로를 반드시 필요로 한다면 마운트 실패 시 로컬 경로에 쓰지 않도록 서비스 의존성도 설계합니다.

TERMINAL / CONFIG
server.example.com:/home/lieper/data /mnt/lieper-data nfs defaults,_netdev 0 0

fstab 수정 뒤 실제 재마운트와 부팅 순서를 시험하고 장애 시 timeout·복구 동작도 확인합니다.

리눅스 › OS 운영
OS 운영 목록