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를 지정하려면 다음과 같이anonuid
및anongid
옵션을 각각 사용합니다.export host(anonuid=uid,anongid=gid)
여기에서 uid 및 gid는 사용자 ID 번호와 그룹 ID 번호입니다.
anonuid
및anongid
옵션을 사용하면 원격 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를 마운트할 수 있으며 디스크에 대한 모든 쓰기는 비동기적입니다.