Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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를 지정하려면 다음과 같이 anonuidanongid 옵션을 각각 사용합니다.
export host(anonuid=uid,anongid=gid)
여기서 uidgid 는 각각 사용자 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/ 읽기 및 쓰기를 마운트할 수 있으며 디스크에 대한 모든 쓰기는 비동기입니다. 옵션 내보내기에 대한 자세한 내용은 man exportfs 를 참조하십시오.
기본값이 지정되지 않은 경우 다른 옵션을 사용할 수 있습니다. 여기에는 하위 트리 검사를 비활성화하고, 비보안 포트에서 액세스를 허용하고, 안전하지 않은 파일 잠금을 허용하는 기능(특정 초기 NFS 클라이언트 구현 시 필요)이 포함됩니다. 이러한 덜 사용되는 옵션에 대한 자세한 내용은 man exports 을 참조하십시오.
중요
/etc/exports 파일의 형식은 특히 공백 문자를 사용하는 것과 관련하여 매우 정확합니다. 내보낸 파일 시스템을 항상 공백 문자를 사용하여 호스트 및 호스트와 서로 분리해야 합니다. 주석 행을 제외하고 파일에는 다른 공백 문자가 없어야 합니다.
예를 들어 다음 두 줄은 동일한 것을 의미하지 않습니다.
/home bob.example.com(rw)
/home bob.example.com (rw)
첫 번째 줄에서는 bob.example.com 의 사용자만 /home 디렉터리에 대한 읽기 및 쓰기 액세스 권한을 허용합니다. 두 번째 행을 사용하면 bob.example.com 의 사용자가 디렉터리를 읽기 전용(기본값)으로 마운트할 수 있으며 나머지 사용자는 읽기/쓰기로 마운트할 수 있습니다.