리눅스 exportfs
IT 위키
더 많은 작업
NFS 서버가 외부에 공유(export)하는 디렉터리 목록을 관리한다.
- /etc/exports 파일을 수정한 뒤 NFS 서비스를 재시작하지 않고 변경 사항을 반영할 때 사용한다.
- 경로 : /usr/sbin/exportfs
- 패키지 : nfs-utils
- 설정 파일 : /etc/exports, /etc/exports.d/*.exports
- 현재 공유 상태 기록 파일 : /var/lib/nfs/etab
- 서비스 이름(Rocky Linux 8) : nfs-server
# exportfs [-avrs] [-o 옵션] [클라이언트:/경로]
- -a : /etc/exports에 정의된 모든 디렉터리를 공유하거나(-u와 함께 쓰면) 모두 해제한다.
- -r : /etc/exports를 다시 읽어 공유 목록을 재구성한다. 파일에서 삭제된 항목은 공유가 해제된다.
- -u : 지정한 디렉터리의 공유를 해제한다.
- -v : 공유·해제 작업 내용과 공유 옵션을 자세히 출력한다.
- -s : 현재 공유 목록을 /etc/exports 형식으로 출력한다.
- -o 옵션 : /etc/exports에 적지 않고 명령행에서 공유 옵션을 지정한다.
- -i : /etc/exports 파일을 무시하고 명령행 옵션과 기본값만 사용한다.
- -f : 커널의 공유 테이블을 비운다. 활성 클라이언트는 다음 요청 시 다시 등록된다.
공유디렉터리 클라이언트1(옵션1,옵션2) 클라이언트2(옵션)
- 클라이언트와 괄호 사이에 공백을 넣으면 안 된다. 192.168.1.0/24 (rw)처럼 쓰면 192.168.1.0/24에는 기본 옵션이, 모든 호스트(*)에는 rw가 적용된다.
- 클라이언트 지정 방식 : 호스트 이름(server1.example.com), IP 주소(192.168.1.10), 네트워크(192.168.1.0/24 또는 192.168.1.0/255.255.255.0), 와일드카드(*.example.com), NIS 넷그룹(@group), 모든 호스트(*)
- ro : 읽기 전용으로 공유한다. (기본값)
- rw : 읽기와 쓰기를 모두 허용한다.
- sync : 변경 내용을 디스크에 기록한 뒤 응답한다. (기본값)
- async : 디스크 기록 전에 응답한다. 빠르지만 서버 장애 시 데이터가 손실될 수 있다.
- root_squash : 클라이언트의 root(UID 0) 요청을 익명 사용자(nobody)로 매핑한다. (기본값)
- no_root_squash : 클라이언트의 root를 서버에서도 root 권한으로 인정한다. 보안상 주의해야 한다.
- all_squash : root를 포함한 모든 사용자를 익명 사용자로 매핑한다.
- no_all_squash : 일반 사용자의 UID/GID를 그대로 사용한다. (기본값)
- anonuid=UID, anongid=GID : 익명 사용자로 매핑할 때 사용할 UID와 GID를 지정한다.
- secure / insecure : 1024 미만 포트에서 온 요청만 허용(secure, 기본값)하거나 모든 포트의 요청을 허용(insecure)한다.
- subtree_check / no_subtree_check : 하위 트리 검사를 할지 지정한다. 기본값은 no_subtree_check이다.
# /etc/exports 예시 /data 192.168.10.0/24(rw,sync,no_root_squash) /pub *(ro,all_squash) /upload 192.168.10.30(rw,all_squash,anonuid=1500,anongid=1500) # /etc/exports를 수정한 뒤 공유 목록을 다시 읽어 적용한다. # exportfs -ra # 현재 공유 중인 목록과 옵션을 확인한다. # exportfs -v # 특정 클라이언트에 대한 공유를 해제한다. # exportfs -u 192.168.10.30:/upload # /etc/exports에 적지 않고 임시로 공유한다. # exportfs -o rw,sync 192.168.10.40:/tmp/share # 클라이언트에서 서버의 공유 목록을 확인한다. $ showmount -e 192.168.10.5
- root_squash, no_root_squash, all_squash, anonuid·anongid의 의미와 /etc/exports 한 줄을 완성하는 문제가 자주 나온다.
- 설정 변경 후 적용 명령으로 exportfs -r(또는 -ra)을 묻는 문제가 자주 나온다.
- 호스트와 괄호 사이의 공백 유무에 따라 의미가 달라진다.
- 방화벽에서 nfs, mountd, rpc-bind 서비스를 허용해야 클라이언트가 접근할 수 있다.
- 리눅스 NFS
- showmount 명령어 : NFS 서버의 공유 목록을 조회한다.
- nfsstat 명령어 : NFS 통계를 출력한다.
- mount 명령어
- 리눅스 portmap
- firewall-cmd 명령어
- 리눅스 네트워크 서비스