탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
![]() |
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 상속 설정
권한을 표현하는 14개 고유 문자를 사용하는 Compact 형식으로 ZFS 파일에서 권한을 설정 및 표시할 수 있습니다. Compact 권한을 나타내는 문자는 표 7-2 및 표 7-4에 나열되어 있습니다.
ls -V 명령을 사용하여 파일 및 디렉토리에 대한 Compact ACL 목록을 표시할 수 있습니다. 예를 들면 다음과 같습니다.
# ls -V file.1 -rw-r--r-- 1 root root 206695 Jul 20 14:27 file.1 owner@:rw-p--aARWcCos:-------:allow group@:r-----a-R-c--s:-------:allow everyone@:r-----a-R-c--s:-------:allow
다음은 Compact ACL 출력 결과에 대한 설명입니다.
소유자가 파일의 내용을 읽고 수정할 수 있습니다( rw=read_data/write_data), (p= append_data). 또한 소유자가 시간 기록, 확장된 속성, ACL과 같은 파일 속성을 수정할 수 있습니다(a=read_attributes, W=write_xattr, R=read_xattr, A=write_attributes, c=read_acl, C=write_acl). 더불어, 소유자가 파일의 소유권을 수정할 수 있습니다(o= write_owner).
synchronize(s) 액세스 권한은 현재 구현되지 않습니다.
그룹에 파일(r= read_data) 및 파일 속성(a=read_attributes , R=read_xattr, c= read_acl)에 대한 읽기 권한이 부여됩니다.
synchronize(s) 액세스 권한은 현재 구현되지 않습니다.
사용자/그룹이 아닌 모든 사람에게 파일 및 파일 속성에 대한 읽기 권한이 부여됩니다(r=read_data, a=append_data, R=read_xattr , c=read_acl, and s= synchronize).
synchronize(s) 액세스 권한은 현재 구현되지 않습니다.
Compact ACL 형식은 Verbose ACL 형식과 비교해 다음과 같은 이점이 있습니다.
chmod 명령에 위치 인수로 권한을 지정할 수 있습니다.
권한 없음을 나타내는 하이픈(-) 문자를 제거할 수 있고 필요한 문자만 지정해야 합니다.
권한 및 상속 플래그가 동일한 방식으로 설정됩니다.
Verbose ACL 형식 사용에 대한 자세한 내용은 Verbose 형식으로 ZFS 파일에서 ACL 설정 및 표시를 참조하십시오.
예 7-11 Compact 형식으로 ACL 설정 및 표시
# ls -V file.1 -rw-r--r-- 1 root root 206695 Jul 20 14:27 file.1 owner@:rw-p--aARWcCos:-------:allow group@:r-----a-R-c--s:-------:allow everyone@:r-----a-R-c--s:-------:allow
이 예에서 file.1의 사용자 gozer에 대해 read_data/execute 권한이 추가됩니다.
# chmod A+user:gozer:rx:allow file.1 # ls -V file.1 -rw-r--r--+ 1 root root 206695 Jul 20 14:27 file.1 user:gozer:r-x-----------:-------:allow owner@:rw-p--aARWcCos:-------:allow group@:r-----a-R-c--s:-------:allow everyone@:r-----a-R-c--s:-------:allow
다음 예에서 사용자 gozer에 대해 Compact ACL 형식을 사용하여 새로 만든 파일 및 디렉토리에 상속되는 읽기, 쓰기, 실행 권한이 부여됩니다.
# chmod A+user:gozer:rwx:fd:allow dir.2 # ls -dV dir.2 drwxr-xr-x+ 2 root root 2 Jul 20 14:33 dir.2 user:gozer:rwx-----------:fd-----:allow owner@:rwxp-DaARWcCos:-------:allow group@:r-x---a-R-c--s:-------:allow everyone@:r-x---a-R-c--s:-------:allow
ls -V 출력 결과에서 Compact chmod 형식으로 권한 및 상속 플래그를 잘라서 붙여 넣을 수 있습니다. 예를 들어, 사용자 gozer에 대한 dir.2의 권한 및 상속 플래그를 dir.2의 사용자 cindy로 복제하려면 권한 및 상속 플래그(rwx-----------:fd-----:allow)를 복사하여 chmod 명령으로 붙여 넣으십시오. 예를 들면 다음과 같습니다.
# chmod A+user:cindy:rwx-----------:fd-----:allow dir.2 # ls -dV dir.2 drwxr-xr-x+ 2 root root 2 Jul 20 14:33 dir.2 user:cindy:rwx-----------:fd-----:allow user:gozer:rwx-----------:fd-----:allow owner@:rwxp-DaARWcCos:-------:allow group@:r-x---a-R-c--s:-------:allow everyone@:r-x---a-R-c--s:-------:allow
예 7-12 ACL 상속 모드를 Pass Through로 설정한 채 ACL 상속
aclinherit 등록 정보가 passthrough로 설정된 파일 시스템은 상속 당시 ACL 항목에 어떤 수정도 없이 모든 상속 가능한 ACL 항목을 상속받습니다. 이 등록 정보가 passthrough로 설정된 경우 상속 가능한 ACE로 결정된 권한 모드로 파일이 생성됩니다. 권한 모드에 영향을 주는 상속 가능한 ACE가 없는 경우 응용 프로그램에서 요청한 모드에 따라 권한 모드가 설정됩니다.
다음 예는 Compact ACL 구문을 사용하여 aclinherit 모드를 passthrough로 설정한 채 권한 비트를 상속하는 방법을 보여줍니다.
이 예에서 ACL은 상속을 강제하도록 test1.dir에 설정됩니다. 새로 만든 파일에 대해 owner@, group@, everyone@ ACL 항목을 만듭니다. 새로 만든 디렉토리는 @owner, group@, everyone@ ACL 항목을 상속합니다.
# zfs set aclinherit=passthrough tank/cindy # pwd /tank/cindy # mkdir test1.dir
# chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow, everyone@::fd:allow test1.dir # ls -Vd test1.dir drwxrwx---+ 2 root root 2 Jul 20 14:42 test1.dir owner@:rwxpdDaARWcCos:fd-----:allow group@:rwxp----------:fd-----:allow everyone@:--------------:fd-----:allow
이 예에서 새로 만든 파일이 새로 만든 파일로 상속되도록 지정된 ACL을 상속합니다.
# cd test1.dir # touch file.1 # ls -V file.1 -rwxrwx---+ 1 root root 0 Jul 20 14:44 file.1 owner@:rwxpdDaARWcCos:------I:allow group@:rwxp----------:------I:allow everyone@:--------------:------I:allow
이 예에서 새로 만든 디렉토리가 이 디렉토리에 대한 액세스를 제어하는 ACE와 앞으로 새로 만들 디렉토리의 자식으로 전파하기 위한 ACE를 모두 상속합니다.
# mkdir subdir.1 # ls -dV subdir.1 drwxrwx---+ 2 root root 2 Jul 20 14:45 subdir.1 owner@:rwxpdDaARWcCos:fd----I:allow group@:rwxp----------:fd----I:allow everyone@:--------------:fd----I:allow
fd----I 항목은 상속을 전파하기 위한 것이며 액세스 제어 중 고려되지 않습니다.
다음 예에서 상속된 ACE가 존재하지 않는 다른 디렉토리에 단순 ACL로 파일이 생성됩니다.
# cd /tank/cindy # mkdir test2.dir # cd test2.dir # touch file.2 # ls -V file.2 -rw-r--r-- 1 root root 0 Jul 20 14:48 file.2 owner@:rw-p--aARWcCos:-------:allow group@:r-----a-R-c--s:-------:allow everyone@:r-----a-R-c--s:-------:allow
예 7-13 ACL 상속 모드를 Pass Through-X로 설정한 채 ACL 상속
aclinherit=passthrough-x가 사용으로 설정된 경우 owner@, group@, everyone@에 대한 실행(x) 권한으로 파일이 생성됩니다(실행 권한이 파일 생성 모드로 설정되고 모드에 영향을 주는 상속 가능한 ACE가 있는 경우에 한함).
다음 예는 aclinherit 모드를 passthrough-x로 설정한 채 실행 권한을 상속하는 방법을 보여줍니다.
# zfs set aclinherit=passthrough-x tank/cindy
다음 ACL은 /tank/cindy/test1.dir에 설정되어 owner@에 대한 실행 가능한 ACL 파일 상속을 제공합니다.
# chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow, everyone@::fd:allow test1.dir # ls -Vd test1.dir drwxrwx---+ 2 root root 2 Jul 20 14:50 test1.dir owner@:rwxpdDaARWcCos:fd-----:allow group@:rwxp----------:fd-----:allow everyone@:--------------:fd-----:allow
파일(file1)이 요청된 권한 0666으로 생성됩니다. 결과 권한은 0660입니다. 생성 모드에서 요청하지 않아서 실행 권한은 상속되지 않았습니다.
# touch test1.dir/file1 # ls -V test1.dir/file1 -rw-rw----+ 1 root root 0 Jul 20 14:52 test1.dir/file1 owner@:rw-pdDaARWcCos:------I:allow group@:rw-p----------:------I:allow everyone@:--------------:------I:allow
그 다음, testdir 디렉토리에서 cc 컴파일러를 사용하여 t라는 실행 파일이 생성됩니다.
# cc -o t t.c # ls -V t -rwxrwx---+ 1 root root 7396 Dec 3 15:19 t owner@:rwxpdDaARWcCos:------I:allow group@:rwxp----------:------I:allow everyone@:--------------:------I:allow
결과 권한은 0770입니다. cc가 권한 0777을 요청했기 때문이며, 이에 따라 owner@, group@, everyone@ 항목에서 실행 권한이 상속됩니다.
예 7-14 ZFS 파일에서 chmod 작업과의 ACL 상호 작용
다음 예에서는 특정 aclmode 및 aclinherit 등록 정보 값이 기존 ACL 권한을 소유 그룹과 일치하도록 줄이거나 확장하기 위해 파일 또는 디렉토리 권한을 변경하는 chmod 작업과 기존 ACL의 상호 작용에 영향을 주는 방법에 대해 설명합니다.
이 예에서 aclmode 등록 정보는 mask로 설정되어 있고, aclinherit 등록 정보는 restricted로 설정되어 있습니다. 이 예의 ACL 권한은 변경 중인 권한을 더 쉽게 보여주는 Compact 모드로 표시됩니다.
원본 파일 및 그룹 소유권과 ACL 권한은 다음과 같습니다.
# zfs set aclmode=mask pond/whoville # zfs set aclinherit=restricted pond/whoville # ls -lV file.1 -rwxrwx---+ 1 root root 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:rw-p--aARWc---:-------:allow group:staff:rw-p--aARWc---:-------:allow owner@:rwxp--aARWcCos:-------:allow group@:rwxp--aARWc--s:-------:allow everyone@:------a-R-c--s:-------:allow
chown 작업은 file.1에 대한 파일 소유권을 변경하며, 소유자 amy가 출력을 표시합니다. 예를 들면 다음과 같습니다.
# chown amy:staff file.1 # su - amy $ ls -lV file.1 -rwxrwx---+ 1 amy staff 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:rw-p--aARWc---:-------:allow group:staff:rw-p--aARWc---:-------:allow owner@:rwxp--aARWcCos:-------:allow group@:rwxp--aARWc--s:-------:allow everyone@:------a-R-c--s:-------:allow
다음 chmod 작업은 권한을 더 제한적인 모드로 변경합니다. 이 예에서는 수정된 sysadmin 그룹 및 staff 그룹의 ACL 권한이 소유 그룹의 권한을 초과하지 않습니다.
$ chmod 640 file.1 $ ls -lV file.1 -rw-r-----+ 1 amy staff 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:r-----a-R-c---:-------:allow group:staff:r-----a-R-c---:-------:allow owner@:rw-p--aARWcCos:-------:allow group@:r-----a-R-c--s:-------:allow everyone@:------a-R-c--s:-------:allow
다음 chmod 작업은 권한을 덜 제한적인 모드로 변경합니다. 이 예에서는 수정된 sysadmin 그룹 및 staff 그룹의 ACL 권한이 복원되어 소유 그룹과 동일한 권한을 허용합니다.
$ chmod 770 file.1 $ ls -lV file.1 -rwxrwx---+ 1 amy staff 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:rw-p--aARWc---:-------:allow group:staff:rw-p--aARWc---:-------:allow owner@:rwxp--aARWcCos:-------:allow group@:rwxp--aARWc--s:-------:allow everyone@:------a-R-c--s:-------:allow