탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
![]() |
Oracle Solaris 11.1 관리: ZFS 파일 시스템 Oracle Solaris 11.1 Information Library (한국어) |
1. Oracle Solaris ZFS 파일 시스템(소개)
3. Oracle Solaris ZFS 저장소 풀 관리
5. Oracle Solaris ZFS 파일 시스템 관리
6. Oracle Solaris ZFS 스냅샷 및 복제 작업
7. ACL 및 속성을 사용하여 Oracle Solaris ZFS 파일 보호
Verbose 형식으로 ZFS 파일에서 ACL 설정 및 표시
Verbose 형식으로 ZFS 파일에서 ACL 상속 설정
Compact 형식으로 ZFS 파일에서 ACL 설정 및 표시
이전 버전의 Solaris는 주로 POSIX 드래프트 ACL 사양에 기반한 ACL 구현을 지원했습니다. POSIX 드래프트 기반 ACL은 UFS 파일을 보호하는 데 사용되고 NFSv4 이전의 NFS 버전으로 변환됩니다.
NFSv4의 도입으로 새 ACL 모델은 UNIX와 비UNIX 클라이언트 간에 NFSv4가 제공하는 상호 운용성을 완벽히 지원합니다. 새 ACL 구현은 NFSv4 사양에 정의된 대로, NT 스타일 ACL에 기반한 다양한 의미론을 제공합니다.
새 ACL 모델의 주요 차이점은 다음과 같습니다.
NFSv4 사양에 기반하며 NT 스타일 ACL과 비슷합니다.
보다 세부적인 액세스 권한 세트를 제공합니다. 자세한 내용은 표 7-2를 참조하십시오.
setfacl 및 getfacl 명령이 아닌, chmod 및 ls 명령으로 설정 및 표시됩니다.
액세스 권한이 디렉토리에서 하위 디렉토리로 적용되는 방법을 지정하는 등 다양한 상속 의미론을 제공합니다. 자세한 내용은 ACL 상속을 참조하십시오.
양쪽 ACL 모델은 표준 파일 권한보다 훨씬 세분화된 액세스 제어를 제공합니다. POSIX 드래프트 ACL과 마찬가지로, 새 ACL은 여러 액세스 제어 항목(ACE)으로 구성됩니다.
POSIX 드래프트 스타일 ACL은 단일 항목을 사용하여 어떤 권한이 허용되고, 어떤 권한이 거부되는지 정의합니다. 새 ACL 모델에는 액세스 검사에 영향을 주는 ALLOW 및 DENY라는 두 가지 유형의 ACE가 있습니다. 따라서 권한 세트를 정의하는 단일 ACE로부터 ACE에 정의되지 않은 권한을 허용 또는 거부할지 여부를 유추할 수 없습니다.
NFSv4 스타일 ACL과 POSIX 드래프트 ACL 사이의 변환은 다음과 같습니다.
cp, mv, tar, cpio, rcp 명령과 같은 ACL 인식 유틸리티를 사용하여 ACL이 포함된 UFS 파일을 ZFS 파일 시스템으로 전송하는 경우 POSIX 드래프트 ACL이 동등한 NFSv4 스타일 ACL로 변환됩니다.
일부 NFSv4 스타일 ACL은 POSIX 드래프트 ACL로 변환됩니다. NFSv4 스타일 ACL이 POSIX 드래프트 ACL로 변환되지 않으면 다음과 비슷한 메시지가 나타납니다.
# cp -p filea /var/tmp cp: failed to set acl entries on /var/tmp/filea
현재 Solaris 릴리스를 실행하는 시스템에 보존 ACL 옵션(tar -p 또는 cpio -P)으로 UFS tar 또는 cpio 아카이브를 만들 경우, 이전 Solaris 릴리스를 실행하는 시스템에 아카이브를 추출할 때 ACL이 손실됩니다.
파일은 모두 올바른 파일 모드로 추출되지만 ACL 항목이 무시됩니다.
ufsrestore 명령을 사용하여 ZFS 파일 시스템에 데이터를 복원할 수 있습니다. 원래 데이터에 POSIX 스타일 ACL이 있는 경우 NFSv4 스타일 ACL로 변환됩니다.
UFS 파일에 NFSv4 스타일 ACL을 설정하려고 시도하면 다음과 비슷한 메시지가 나타납니다.
chmod: ERROR: ACL type's are different
ZFS 파일에 POSIX 스타일 ACL을 설정하려고 시도하면 다음과 비슷한 메시지가 나타납니다.
# getfacl filea File system doesn't support aclent_t style ACL's. See acl(5) for more information on Solaris ACL support.
다른 ACL 제한 사항 및 백업 제품에 대한 자세한 내용은 다른 백업 제품으로 ZFS 데이터 저장을 참조하십시오.
단순 ACL – 기존의 UNIX user, group 및 owner 항목만 포함합니다.
복잡한 ACL – 소유자, 그룹 및 모든 사용자뿐만 아니라 더 많은 항목을 포함하거나 상속 플래그 세트를 포함하거나 항목이 기존 방식이 아닌 다른 방식으로 정렬됩니다.
단순 ACL 설정을 위한 구문
chmod [options] A[index]{+|=}owner@ |group@ |everyone@: access-permissions/...[:inheritance-flags]: deny | allow file
chmod [options] A-owner@, group@, everyone@:access-permissions /...[:inheritance-flags]:deny | allow file ...
chmod [options] A[index]- file
복잡한 ACL 설정을 위한 구문
chmod [options] A[index]{+|=}user|group:name:access-permissions /...[:inheritance-flags]:deny | allow file
chmod [options] A-user|group:name:access-permissions /...[:inheritance-flags]:deny | allow file ...
chmod [options] A[index]- file
단순 ACL 구문을 위해 ACL-entry-type을 식별합니다. ACL-entry-types에 대한 설명은 표 7-1을 참조하십시오.
명시적 ACL 구문을 위해 ACL-entry-type을 식별합니다. 사용자 및 그룹 ACL-entry-type은 ACL-entry-ID와 username 또는 groupname도 포함해야 합니다. ACL-entry-types에 대한 설명은 표 7-1을 참조하십시오.
부여 또는 거부되는 액세스 권한을 식별합니다. ACL 액세스 권한에 대한 설명은 표 7-2를 참조하십시오.
ACL 상속 플래그의 선택적 목록을 식별합니다. ACL 상속 플래그에 대한 설명은 표 7-4를 참조하십시오.
액세스 권한이 부여 또는 거부되는지 여부를 식별합니다.
다음 예에서 owner@, group@, everyone@에 대한 ACL-entry-ID 값이 존재하지 않습니다.
group@:write_data/append_data/execute:deny
다음 예에서 특정 사용자(ACL-entry-type)가 ACL에 포함되므로 ACL-entry-ID가 있습니다.
0:user:gozer:list_directory/read_data/execute:allow
ACL 항목이 표시될 때 다음과 비슷하게 나타납니다.
2:group@:write_data/append_data/execute:deny
이 예에서 2 또는 index-ID 지정은 소유자, 특정 UID, 그룹, 모든 사람에 대한 여러 항목이 포함된 대형 ACL에서 ACL 항목을 식별합니다. chmod 명령에 index-ID를 지정하여 수정할 ACL의 부분을 식별할 수 있습니다. 예를 들어, 다음과 같이 인덱스 ID 3을 chmod 명령에 A3으로 식별할 수 있습니다.
chmod A3=user:venkman:read_acl:allow filename
다음 표에 ACL 항목 유형(owner/group/other의 ACL 표현)이 설명됩니다.
표 7-1 ACL 항목 유형
|
표 7-2 ACL 액세스 권한
|
다음 표에서는 ACL delete 및 delete_child 동작에 대해 자세히 설명합니다.
표 7-3 ACL delete 및 delete_child 권한 동작
|
다음 ACL 조합은 개별 권한을 별도로 설정하는 대신 ACL 세트로 적용할 수 있습니다. 다음과 같은 ACL 세트를 사용할 수 있습니다.
|
이러한 ACL 세트는 미리 정의되며 수정할 수 없습니다.
ACL 상속의 사용 목적은 새로 만든 파일 또는 디렉토리에서 부모 디렉토리의 기존 권한 비트를 무시하지 않고 ACL을 상속할 수 있도록 하는 것입니다.
기본적으로 ACL은 전파되지 않습니다. 디렉토리에 복잡한 ACL을 설정하면 후속 디렉토리로 상속되지 않습니다. 파일 또는 디렉토리에 ACL의 상속을 지정해야 합니다.
표 7-4 ACL 상속 플래그
|
더불어, aclinherit 파일 시스템 등록 정보를 사용하여 더 엄격한/덜 엄격한 기본 ACL 상속 정책을 파일 시스템에 설정할 수 있습니다. 자세한 내용은 다음 절을 참조하십시오.
ZFS 파일 시스템에는 ACL 상속의 특정 동작 및 chmod 작업과의 ACL 상호 작용을 결정하는 다음 ACL 등록 정보가 포함되어 있습니다.
aclinherit – ACL 상속의 동작을 결정합니다. 다음과 같은 값이 있습니다.
discard – 새 객체의 경우, 파일 또는 디렉토리를 만들 때 상속되는 ACL 항목이 없습니다. 파일 또는 디렉토리의 ACL은 파일 또는 디렉토리의 권한 모드와 같습니다.
noallow – 새 객체의 경우, 액세스 유형이 deny인 상속 가능한 ACL 항목만 상속됩니다.
restricted – 새 객체의 경우, ACL 항목을 상속할 때 write_owner 및 write_acl 권한이 제거됩니다.
passthrough – 등록 정보 값이 passthrough로 설정된 경우 상속 가능한 ACE로 결정된 모드로 파일이 생성됩니다. 모드에 영향을 주는 상속 가능한 ACE가 없는 경우 응용 프로그램에서 요청한 모드에 따라 모드가 설정됩니다.
passthrough-x – passthrough와 의미론이 같지만, 단 passthrough-x가 사용으로 설정된 경우 실행(x) 권한으로 파일이 생성됩니다(실행 권한이 파일 생성 모드로 설정되고 모드에 영향을 주는 상속 가능한 ACE가 있는 경우에 한함).
aclinherit의 기본 모드는 restricted입니다.
aclmode – 파일을 처음 만들 때 ACL 동작을 수정하거나 chmod 작업 도중 ACL 수정 방법을 제어합니다. 값은 다음과 같습니다.
discard – aclmode 등록 정보가 discard인 파일 시스템은 파일 모드를 나타내지 않는 ACL 항목을 모두 삭제합니다. 이것이 기본값입니다.
mask – aclmode 등록 정보가 mask인 파일 시스템은 사용자 또는 그룹 권한을 줄입니다. 파일 또는 디렉토리의 소유자와 동일한 UID를 가진 사용자 항목이 아닌 경우 그룹 권한 비트보다 크지 않도록 권한이 감소합니다. 이 경우 소유자 권한 비트보다 크지 않도록 ACL 권한이 감소합니다. 또한 명시적 ACL 세트 작업이 수행되지 않은 경우 모드 변경 후에도 마스크 값이 ACL을 유지합니다.
passthrough – aclmode 등록 정보가 passthrough인 파일 시스템은 파일 또는 디렉토리의 새 모드를 나타내는 데 필요한 ACL 항목의 생성 외에 ACL에 대한 변경 사항이 없음을 나타냅니다.
aclmode의 기본 모드는 discard입니다.
aclmode 등록 정보 사용에 대한 자세한 내용은 예 7-14를 참조하십시오.