4.6. NFS 서버 구성

이 섹션에서는 NFS 서버에서 내보내기를 구성하는 두 가지 방법의 구문 및 옵션에 대해 설명합니다.

  • 수동으로 /etc/exports 구성 파일 편집
  • 명령줄에서 exportfs 유틸리티 사용

4.6.1. /etc/exports 구성 파일

/etc/exports 파일은 원격 호스트로 내보낼 파일 시스템을 제어하고 옵션을 지정합니다. 다음 구문 규칙을 따릅니다.

  • 빈 줄은 무시됩니다.
  • 주석을 추가하려면 해시 표시(# )로 행을 시작합니다.
  • 긴 줄을 백슬래시(\)로 래핑할 수 있습니다.
  • 내보낸 각 파일 시스템은 고유한 개별 행에 있어야 합니다.
  • 내보낸 파일 시스템 이후에 배치된 인증된 호스트 목록은 공백 문자로 구분해야 합니다.
  • 호스트와 첫 번째 괄호를 분리하는 공백 없이 호스트 식별자 뒤에 직접 각 호스트에 대한 옵션을 배치해야 합니다.
내보내기 항목

내보낸 파일 시스템의 각 항목에는 다음과 같은 구조가 있습니다.

export host(options)

각 호스트에 대한 특정 옵션과 함께 여러 호스트를 지정할 수도 있습니다. 이렇게 하려면 공백으로 구분된 목록과 동일한 줄에 나열한 다음 각 호스트 이름 뒤에 해당 옵션( 괄호 안에 있음)을 다음과 같이 나열합니다.

export host1(options1) host2(options2) host3(options3)

이 구조에서:

export
내보낼 디렉터리입니다.
호스트
공유되고 있는 호스트 또는 네트워크
옵션
호스트에 사용할 옵션

예 4.1. 간단한 /etc/exports 파일

가장 간단한 형식의 /etc/exports 파일은 내보낸 디렉터리와 액세스할 수 있는 호스트만 지정합니다.

/exported/directory bob.example.com

여기에서 bob.example.com 은 NFS 서버에서 /exported/directory/ 를 마운트할 수 있습니다. 이 예제에 옵션이 지정되지 않기 때문에 NFS에서는 기본 옵션을 사용합니다.

중요

/etc/exports 파일의 형식은 특히 공백 문자를 사용하는 것과 관련하여 매우 정확합니다. 내보낸 파일 시스템을 항상 호스트 및 호스트에서 공백 문자를 사용하여 서로 분리해야 합니다. 그러나 주석 행을 제외하고 파일에 다른 공백 문자는 없어야 합니다.

예를 들어 다음 두 줄은 동일한 것을 의미하는 것은 아닙니다.

/home bob.example.com(rw)
/home bob.example.com (rw)

첫 번째 줄에서는 bob.example.com 의 사용자만 /home 디렉토리에 대한 읽기 및 쓰기 액세스 권한을 허용합니다. 두 번째 줄에서는 bob.example.com 의 사용자가 디렉터리를 읽기 전용(기본값)으로 마운트할 수 있는 반면 나머지 줄은 읽기/쓰기로 마운트할 수 있습니다.

기본 옵션

내보내기 항목의 기본 옵션은 다음과 같습니다.

ro
내보낸 파일 시스템은 읽기 전용입니다. 원격 호스트는 파일 시스템에서 공유되는 데이터를 변경할 수 없습니다. 호스트가 파일 시스템(즉, 읽기 및 쓰기)을 변경할 수 있도록 하려면 rw 옵션을 지정합니다.
sync
이전 요청으로 변경한 내용이 디스크에 기록되기 전에 NFS 서버는 요청에 응답하지 않습니다. 대신 비동기 쓰기를 활성화하려면 async 옵션을 지정합니다.
wdelay
NFS 서버는 다른 쓰기 요청이 잘못된 것으로 의심되는 경우 디스크에 쓰는 것을 지연합니다. 이렇게 하면 별도의 쓰기 명령으로 디스크에 액세스해야 하는 횟수가 줄어들어 쓰기 오버헤드가 줄어들어 성능이 향상될 수 있습니다. 이 옵션을 비활성화하려면 기본 동기화 옵션도 지정된 경우에만 사용할 수 있는 no_wdelay 옵션을 지정합니다.
root_squash

이렇게 하면 root 사용자가 (로컬와 달리) root 사용자가 root 권한을 보유하지 못하도록 합니다. 대신 NFS 서버는 사용자 ID nobody 를 할당합니다. 이를 통해 원격 root 사용자의 기능을 가장 낮은 로컬 사용자에게 "스쿼시"하여 원격 서버에서 무단 쓰기를 방지합니다. 루트 스쿼시를 비활성화하려면 no_root_squash 옵션을 지정합니다.

모든 원격 사용자(root 포함)를 스쿼시하려면 all_squash 옵션을 사용합니다. NFS 서버에서 특정 호스트의 원격 사용자에게 할당해야 하는 사용자 및 그룹 ID를 지정하려면 다음과 같이 anonuidanongid 옵션을 각각 사용합니다.

export host(anonuid=uid,anongid=gid)

여기에서 uid gid는 사용자 ID 번호와 그룹 ID 번호입니다. anonuidanongid 옵션을 사용하면 원격 NFS 사용자가 공유할 수 있는 특수 사용자 및 그룹 계정을 만들 수 있습니다.

기본적으로 ACL(액세스 제어 목록)은 Red Hat Enterprise Linux에서 NFS에서 지원됩니다. 이 기능을 비활성화하려면 파일 시스템을 내보낼 때 no_acl 옵션을 지정합니다.

기본값 및 재정의 옵션

내보낸 모든 파일 시스템의 각 기본값은 명시적으로 재정의해야 합니다. 예를 들어 rw 옵션이 지정되지 않으면 내보낸 파일 시스템이 읽기 전용으로 공유됩니다. 다음은 두 가지 기본 옵션을 재정의하는 /etc/exports 의 샘플 행입니다.

/another/exported/directory 192.168.0.3(rw,async)

이 예에서 192.168.0.3/another/exported/directory/ read 및 write를 마운트할 수 있으며 디스크에 대한 모든 쓰기는 비동기적입니다.