8.6. NFS 서버 구성
NFS 서버에서 내보내기를 구성하는 방법은 다음 두 가지가 있습니다.
- NFS 구성 파일 즉,
/etc/exports
를 수동으로 편집할 수 있습니다. - 명령행을 통해, 즉 exportfs명령을 사용하여
8.6.1. /etc/exports
구성 파일
/etc/exports
파일은 원격 호스트로 내보낼 파일 시스템을 제어하고 옵션을 지정합니다. 다음 구문 규칙을 따릅니다.
- 빈 줄은 무시됩니다.
- 주석을 추가하려면 해시 표시(#)로 행을 시작합니다.
- 긴 줄을 백슬래시(\)로 래핑할 수 있습니다.
- 내보낸 각 파일 시스템은 고유한 개별 행에 있어야 합니다.
- 내보낸 파일 시스템 뒤에 배치된 권한 있는 호스트 목록은 공백 문자로 구분해야 합니다.
- 각 호스트에 대한 옵션은 호스트와 첫 번째 괄호를 구분하여 호스트 식별자 뒤에 직접 배치해야 합니다.
내보낸 파일 시스템의 각 항목에는 다음과 같은 구조가 있습니다.
export host(options)
앞에서 언급한 구조는 다음 변수를 사용합니다.
- export
- 내보낼 디렉토리
- host
- 내보내기를 공유할 호스트 또는 네트워크
- options
- 호스트에사용할 옵션
각 호스트에 대한 특정 옵션과 함께 여러 호스트를 지정할 수 있습니다. 이렇게 하려면 공백으로 구분된 목록과 동일한 줄에 각 호스트 이름 뒤에 각각의 옵션(대괄호로)을 나열합니다.
export host1(options1) host2(options2) host3(options3)
호스트 이름을 지정하는 다양한 방법에 대한 자세한 내용은 8.6.5절. “호스트 이름 형식” 을 참조하십시오.
가장 간단한 형식인
/etc/exports
파일은 내보낸 디렉토리와 다음 예와 같이 액세스하도록 허용된 호스트만 지정합니다.
예 8.6. /etc/exports
파일
/exported/directory bob.example.com
여기에서
bob.example.com
는 NFS 서버에서 /exported/directory/
를 마운트할 수 있습니다. 이 예에서는 옵션이 지정되지 않으므로 NFS는 기본 설정을 사용합니다.
기본 설정은 다음과 같습니다.
- ro
- 내보낸 파일 시스템은 읽기 전용입니다. 원격 호스트는 파일 시스템에서 공유하는 데이터를 변경할 수 없습니다. 호스트가 파일 시스템(즉, 읽기 및 쓰기)을 변경할 수 있도록 허용하려면
rw
옵션을 지정합니다. - sync
- 이전 요청의 변경 전에 NFS 서버는 요청에 응답하지 않습니다. 대신 비동기 쓰기를 활성화하려면
async
옵션을 지정합니다. - wdelay
- 다른 쓰기 요청이 무미한 것으로 의심되는 경우 NFS 서버는 디스크에 쓰기를 지연합니다. 이렇게 하면 별도의 쓰기 명령으로 디스크에 액세스해야 하는 횟수가 줄어들어 쓰기 오버헤드가 줄어들어 성능을 향상시킬 수 있습니다. 이를 비활성화하려면
no_wdelay
를 지정합니다.no_wdelay
는 기본동기화
옵션도 지정된 경우에만 사용할 수 있습니다. - root_squash
- 이렇게 하면 루트 사용자가 root 권한을 원격으로 연결할 수 없습니다. 대신, NFS 서버에서 사용자 ID
nfsnobody
를 할당합니다. 이를 통해 원격 루트 사용자의 권한을 가장 낮은 로컬 사용자에게 효과적으로 "스쿼리"하여 원격 서버에 무단 쓰기를 방지할 수 있습니다. 루트 스쿼시를 비활성화하려면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/
읽기 및 쓰기를 마운트할 수 있으며 디스크에 대한 모든 쓰기는 비동기입니다. 옵션 내보내기에 대한 자세한 내용은 man exportfs 를 참조하십시오.
기본값이 지정되지 않은 경우 다른 옵션을 사용할 수 있습니다. 여기에는 하위 트리 검사를 비활성화하고, 비보안 포트에서 액세스를 허용하고, 안전하지 않은 파일 잠금을 허용하는 기능(특정 초기 NFS 클라이언트 구현 시 필요)이 포함됩니다. 이러한 덜 사용되는 옵션에 대한 자세한 내용은 man exports 을 참조하십시오.
중요
/etc/exports
파일의 형식은 특히 공백 문자를 사용하는 것과 관련하여 매우 정확합니다. 내보낸 파일 시스템을 항상 공백 문자를 사용하여 호스트 및 호스트와 서로 분리해야 합니다. 주석 행을 제외하고 파일에는 다른 공백 문자가 없어야 합니다.
예를 들어 다음 두 줄은 동일한 것을 의미하지 않습니다.
/home bob.example.com(rw) /home bob.example.com (rw)
첫 번째 줄에서는
bob.example.com
의 사용자만 /home
디렉터리에 대한 읽기 및 쓰기 액세스 권한을 허용합니다. 두 번째 행을 사용하면 bob.example.com
의 사용자가 디렉터리를 읽기 전용(기본값)으로 마운트할 수 있으며 나머지 사용자는 읽기/쓰기로 마운트할 수 있습니다.