Oracle® Solaris 11.2의 네트워크 파일 시스템 관리

인쇄 보기 종료

업데이트 날짜: 2014년 7월
 
 

share 명령

share 명령을 사용하여 NFS 서버의 로컬 파일 시스템을 마운트 가능하도록 지정합니다. share 명령을 사용하여 시스템에서 현재 공유 중인 파일 시스템 목록을 표시할 수도 있습니다. NFS 서버가 실행 중이어야 share 명령이 작동합니다.

공유할 수 있는 객체에는 모든 디렉토리 트리가 포함됩니다. 그러나 각 파일 시스템 계층은 파일 시스템이 있는 파티션이나 디스크 슬라이스에 의해 제한됩니다.

이미 공유 중인 더 큰 파일 시스템의 일부분인 파일 시스템은 공유할 수 없습니다. 예를 들어 /usr/usr/local이 한 디스크 슬라이스에 있는 경우 /usr을 공유하거나 /usr/local을 공유할 수 있습니다. 그러나 서로 다른 공유 옵션을 사용하여 두 디렉토리를 모두 공유해야 하는 경우에는 /usr/local을 별도의 디스크 슬라이스로 이동해야 합니다.

읽기/쓰기 공유된 파일 시스템의 파일 핸들을 통해 읽기 전용 공유인 파일 시스템에 액세스할 수 있습니다. 그러나 이 경우 두 파일 시스템이 같은 디스크 슬라이스에 있어야 합니다. 더 안전한 방법을 사용하려면 읽기/쓰기로 지정해야 하는 파일 시스템을 읽기 전용으로 공유해야 하는 파일 시스템과 다른 별도의 분할 영역이나 디스크 슬라이스에 배치합니다.


주 -  파일 시스템 공유를 해제했다가 다시 공유할 때 NFS 버전 4가 작동하는 방식에 대한 자세한 내용은 NFS 버전 4에서 파일 시스템 공유 해제 및 다시 공유를 참조하십시오.

share 옵션

–o 플래그와 함께 포함할 수 있는 몇 가지 옵션은 다음과 같습니다.

rw|ro

pathname 파일 시스템은 모든 클라이언트에 대해 읽기/쓰기 또는 읽기 전용으로 공유됩니다.

rw=access-list

파일 시스템이 나열된 클라이언트에 한해 읽기/쓰기로 공유됩니다. 다른 모든 요청은 거부됩니다. 자세한 내용은 share 명령을 사용하여 액세스 목록 설정을 참조하십시오. 이 옵션을 사용하여 –ro 옵션을 대체할 수 있습니다.

NFS 관련 share 옵션

NFS 파일 시스템에서 사용 가능한 옵션은 다음과 같습니다.

aclok

이 옵션을 사용하면 NFS 버전 2 프로토콜을 지원하는 NFS 서버에서 NFS 버전 2 클라이언트의 액세스를 제어하도록 구성할 수 있습니다. 이 옵션을 사용하지 않으면 모든 클라이언트에 최소한의 액세스 권한이 제공됩니다. 이 옵션을 사용하면 클라이언트에 최대한의 액세스 권한이 제공됩니다. 예를 들어 –aclok 옵션을 통해 공유되는 파일 시스템에서는 특정 사용자에게 읽기 권한이 있으면 모든 사용자에게 읽기 권한이 있는 것입니다. 그러나 이 옵션을 사용하지 않는 경우에는 액세스 권한을 가져야 하는 클라이언트에 대한 액세스를 거부할 수 있습니다. 이미 사용되고 있는 보안 시스템에 따라 허용할 액세스 권한 레벨을 결정합니다. ACL(액세스 제어 목록)에 대한 자세한 내용은 Oracle Solaris 11.2의 파일 보안 및 파일 무결성 확인 의 액세스 제어 목록을 사용하여 UFS 파일 보호를 참조하십시오.


주 -  ACL을 사용하려면 클라이언트와 서버에서 NFS 버전 3 및 NFS_ACL 프로토콜을 지원하는 소프트웨어를 실행하는지 확인합니다. 소프트웨어에서 NFS 버전 3 프로토콜만 지원하는 경우에는 클라이언트가 올바른 액세스 권한을 얻지만 ACL을 조작할 수는 없습니다. 소프트웨어에서 NFS_ACL 프로토콜을 지원하는 경우 클라이언트는 올바른 액세스 권한을 얻으며 ACL을 조작할 수 있습니다.
anon=uid

anon을 사용하여 인증되지 않은 사용자의 사용자 ID를 선택합니다. anon-1로 설정하면 서버에서 인증되지 않은 사용자의 액세스를 거부합니다. anon=0을 설정하여 루트 액세스 권한을 부여하면 인증되지 않은 사용자가 루트 액세스 권한을 가질 수 있으므로 대신 root 옵션을 사용하십시오.

index=filename

사용자가 NFS URL에 액세스하면 –index=filename 옵션은 디렉토리 목록을 표시하는 대신 HTML 파일을 강제로 로드합니다. 이 옵션은 HTTP URL이 액세스하는 디렉토리에서 index.html 파일을 찾으면 현재 브라우저의 동작을 모방합니다. 이 옵션은 httpd에 대해 DirectoryIndex 옵션을 설정하는 것과 동등합니다. 예를 들어 share 명령의 결과가 다음과 같다고 가정합니다.

export_web /export/web   nfs sec=sys,public,index=index.html,ro

이러한 URL은 같은 정보를 표시합니다.

nfs://server/dir
nfs://server/dir/index.html
nfs://server//export/web/dir
nfs://server//export/web/dir/index.html
http://server/dir
http://server/dir/index.html
log=tag

이 옵션은 /etc/nfs/nfslog.conf에서 파일 시스템에 대한 NFS 서버 로깅 구성 정보가 포함된 태그를 지정합니다. NFS 서버 로깅을 사용으로 설정하려면 이 옵션을 선택해야 합니다.

nosuid

이 옵션은 setuid 또는 setgid 모드를 사용으로 설정하려는 모든 시도를 무시해야 함을 나타냅니다. NFS 클라이언트는 setuid 또는 setgid 비트가 설정되어 있으면 파일을 만들 수 없습니다.

public

WebNFS 찾아보기를 수행할 수 있도록 –public 옵션이 share 명령에 추가되었습니다. 이 옵션을 사용하는 경우 서버의 파일 시스템 하나만 공유할 수 있습니다.

–root=access-list

서버에서 목록의 호스트에 대한 루트 액세스 권한을 부여합니다. 기본적으로 서버에서는 원격 호스트에 대한 루트 액세스 권한을 부여하지 않습니다. 선택한 보안 모드가 –sec=sys 이외의 모드인 경우에는 목록에 클라이언트 호스트 이름만 포함할 수 있습니다. 자세한 내용은 share 명령을 사용하여 액세스 목록 설정을 참조하십시오.


Caution

주의  -  다른 호스트에 대한 루트 액세스 권한을 부여하는 것은 보안상 다양한 사항을 의미합니다. –root= 옵션을 사용할 때는 주의해야 합니다.


–root=client-name

client-name 값은 exportfs(1B)에서 제공되는 주소 목록에 대해 클라이언트 IP 주소를 확인하기 위해 AUTH_SYS 인증에서 사용됩니다. 일치하는 항목이 있으면 공유 중인 파일 시스템에 대한 root 액세스 권한이 부여됩니다.

–root=hostname

AUTH_SYS 또는 RPCSEC_GSS와 같은 보안 NFS 모드에서는 서버가 액세스 목록에서 파생되는 호스트 기반 기본 이름 목록에 대해 클라이언트의 기본 이름을 확인합니다. 클라이언트 기본 이름의 일반 구문은 root@hostname입니다. Kerberos V의 경우 구문은 root/hostname.fully.qualified@REALM입니다. hostname 값을 사용하는 경우 액세스 목록의 클라이언트에 기본 이름에 대한 자격 증명이 있어야 합니다. Kerberos V의 경우 클라이언트에는 해당 root/hostname.fully.qualified@REALM 기본 이름에 대한 유효한 keytab 항목이 있어야 합니다. 자세한 내용은 Oracle Solaris 11.2의 Kerberos 및 기타 인증 서비스 관리 의 Kerberos 클라이언트 구성을 참조하십시오.

–sec=mode[:mode]

이 옵션은 파일 시스템 액세스 권한을 얻는 데 필요한 보안 모드를 설정합니다. 기본 보안 모드는 UNIX 인증입니다. 여러 모드를 지정할 수는 있지만 명령줄당 각 보안 모드를 한 번씩만 사용해야 합니다. 각 –sec= 옵션은 다른 –sec= 옵션이 발견될 때까지 모든 후속 –rw, –ro, –rw=, –ro=, –root=–window= 옵션에 적용됩니다. –sec=none을 사용하는 경우 모든 사용자가 nobody 사용자에게 매핑됩니다.

window=value

value는 NFS 서버에서 자격 증명의 최대 수명(초)을 선택합니다. 기본값은 30000초(8.3시간)입니다.

share 명령을 사용하여 액세스 목록 설정

share 명령을 제공하는 액세스 목록에는 도메인 이름, 서브넷 번호 또는 액세스를 거부할 항목은 물론 표준 –ro=, –rw= 또는 –root= 옵션도 포함될 수 있습니다. 이러한 확장을 사용하면 긴 클라이언트 목록을 유지 관리하거나 이름 공간을 변경할 필요 없이 단일 서버에서 파일 액세스를 간편하게 제어할 수 있습니다.

다음 예에서 대부분의 시스템에 대해서는 읽기 전용 액세스 권한을 제공하지만 roselilac에 대해서는 읽기/쓰기 액세스 권한을 허용합니다.

# share -F nfs -o ro,rw=rose:lilac /usr/src

다음 예에서는 eng 넷 그룹의 모든 호스트에 대한 읽기 전용 액세스 권한을 지정합니다. rose 클라이언트에만 읽기/쓰기 액세스 권한이 부여됩니다.

# share -F nfs -o ro=eng,rw=rose /usr/src

주 -  인수를 사용하지 않고는 rwro를 모두 지정할 수 없습니다. 읽기/쓰기 옵션이 지정되어 있지 않으면 모든 클라이언트에 대해 기본적으로 읽기/쓰기가 사용됩니다.

하나의 파일 시스템을 여러 클라이언트와 공유하려면 같은 행에 모든 옵션을 입력해야 합니다. 같은 객체에 대해 share 명령을 여러 번 호출하면 마지막으로 실행된 명령만 적용됩니다. 다음 예에서는 3개 클라이언트 시스템에 대한 읽기/쓰기 권한을 사용으로 설정하지만, rosetulip에만 root로서 파일 시스템 액세스 권한이 제공됩니다.

# share -F nfs -o rw=rose:lilac:tulip,root=rose:tulip /usr/src

여러 인증 방식을 사용하는 파일 시스템을 공유할 때는 올바른 보안 모드 뒤에 –ro, –ro=, –rw, –rw=, –root–window 옵션을 포함하십시오. 이 예에서는 이름이 eng인 넷 그룹의 모든 호스트에 대해 UNIX 인증을 선택합니다. 이러한 호스트는 읽기 전용 모드에서만 파일 시스템을 마운트할 수 있습니다. tuliplilac 호스트는 Diffie-Hellman 인증을 사용하는 경우 파일 시스템을 읽기/쓰기로 마운트할 수 있습니다. 이러한 옵션을 사용하는 경우 tuliplilac은 DH 인증을 사용하지 않아도 파일 시스템을 읽기 전용으로 마운트할 수 있습니다. 그러나 이 경우에는 eng 넷 그룹에 호스트 이름이 포함되어 있어야 합니다.

# share -F nfs -o sec=dh,rw=tulip:lilac,sec=sys,ro=eng /usr/src

UNIX 인증이 기본 보안 모드이기는 하지만 –sec 옵션을 사용하는 경우에는 UNIX 인증이 포함되지 않습니다. 따라서 UNIX 인증을 다른 인증 방식과 함께 사용하려는 경우에는 –sec=sys 옵션을 포함해야 합니다.

실제 도메인 이름과 마침표를 앞에 붙여서 액세스 목록에서 DNS 도메인 이름을 사용할 수 있습니다. 마침표 뒤의 문자열은 정규화된 호스트 이름이 아닌 도메인 이름입니다. 다음 예에서는 eng.example.com 도메인의 모든 호스트에 대한 마운트 액세스를 허용합니다.

# share -F nfs -o ro=.:.eng.example.com /export/share/man

이 예에서는 단일 점이 NIS 이름 공간을 통해 일치되는 모든 호스트와 일치합니다. 이러한 이름 서비스에서 반환되는 결과에는 도메인 이름이 포함되지 않습니다. .eng.example.com 항목은 이름 공간 확인을 위해 DNS를 사용하는 모든 호스트와 일치합니다. DNS는 항상 정규화된 호스트 이름을 반환하므로 DNS와 다른 이름 공간을 결합하여 사용하는 경우에는 더 긴 항목이 필요합니다.

실제 네트워크 번호 또는 네트워크 이름과 @ 기호를 앞에 붙여 액세스 목록에서 서브넷 번호를 사용할 수 있습니다. 이 문자는 네트워크 이름을 넷 그룹이나 정규화된 호스트 이름과 구분합니다. 서브넷은 /etc/networks 또는 NIS 이름 공간에서 식별해야 합니다. 다음 항목을 사용하는 경우 192.168 서브넷을 eng 네트워크로 식별한 경우와 같은 효과를 얻을 수 있습니다.

# share -F nfs -o ro=@eng /export/share/man
# share -F nfs -o ro=@192.168 /export/share/man
# share -F nfs -o ro=@192.168.0.0 /export/share/man

마지막 두 항목은 전체 네트워크 주소를 포함하지 않아도 됨을 보여줍니다.

CIDR(Classless Inter-Domain Routing)에서와 같이 네트워크 접두어가 바이트 맞춤되어 있지 않으면 명령줄에서 마스크 길이를 명시적으로 지정할 수 있습니다. 마스크 길이는 주소 접두어에서 네트워크 이름이나 네트워크 번호(슬래시 포함) 및 중요한 비트 번호를 따라 정의됩니다. 예를 들면 다음과 같습니다.

# share -f nfs -o ro=@eng/17 /export/share/man
# share -F nfs -o ro=@192.168.0/17 /export/share/man

이 예제에서 “/17”은 주소의 첫 17비트가 마스크로 사용됨을 나타냅니다. CIDR에 대한 자세한 내용은 RFC 1519를 참조하십시오.

항목 앞에 “-”를 배치하여 음수 액세스를 선택할 수도 있습니다. 항목은 왼쪽부터 오른쪽으로 읽습니다. 따라서 음수 액세스 항목이 적용되는 항목 앞에 음수 액세스 항목을 배치해야 합니다.

# share -F nfs -o ro=-rose:.eng.example.com /export/share/man

이 예제에서는 이름이 rose인 호스트를 제외하고 eng.example.com 도메인의 모든 호스트에 대한 액세스를 허용합니다.