탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris ZFS 관리 설명서 Oracle Solaris 10 8/11 Information Library (한국어) |
1. Oracle Solaris ZFS 파일 시스템(소개)
3. Oracle Solaris ZFS와 전통적인 파일 시스템의 차이
4. Oracle Solaris ZFS 저장소 풀 관리
5. Oracle Solaris ZFS 루트 파일 시스템 설치 및 부트
6. Oracle Solaris ZFS 파일 시스템 관리
7. Oracle Solaris ZFS 스냅샷 및 복제 작업
8. ACL 및 속성을 사용하여 Oracle Solaris ZFS 파일 보호
Verbose 형식으로 ZFS 파일에서 ACL 설정 및 표시
Verbose 형식으로 ZFS 파일에서 ACL 상속 설정
권한을 표현하는 14개 고유 문자를 사용하는 Compact 형식으로 ZFS 파일에서 권한을 설정 및 표시할 수 있습니다. 표 8-2 및 표 8-3에 Compact 권한을 표현하는 문자가 나열됩니다.
ls -V 명령을 사용하여 파일 및 디렉토리에 대한 Compact ACL 목록을 표시할 수 있습니다. 예를 들면 다음과 같습니다.
# ls -V file.1 -rw-r--r-- 1 root root 206663 Jun 23 15:06 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 , A=write_xattr, R= read_xattr, W=write_attributes, c=read_acl, C=write_acl). 더불어, 소유자가 파일의 소유권을 수정할 수 있습니다(o= write_owner).
synchronize 액세스 권한은 현재 구현되지 않습니다.
그룹에 파일에 대한 읽기 권한이 부여됩니다(r= read_data) and the file's attributes (a=read_attributes , R=read_xattr, c= read_acl).
synchronize 액세스 권한은 현재 구현되지 않습니다.
사용자/그룹이 아닌 모든 사람에게 파일 및 파일 속성에 대한 읽기 권한이 부여됩니다(r=read_data, a=append_data, R=read_xattr , c=read_acl, and s= synchronize).
synchronize 액세스 권한은 현재 구현되지 않습니다.
Compact ACL 형식은 Verbose ACL 형식과 비교해 다음과 같은 이점이 있습니다.
chmod 명령에 위치 인수로 권한을 지정할 수 있습니다.
권한 없음을 나타내는 하이픈(-) 문자를 제거할 수 있고 필요한 문자만 지정해야 합니다.
권한 및 상속 플래그가 동일한 방식으로 설정됩니다.
Verbose ACL 형식 사용에 대한 자세한 내용은 Verbose 형식으로 ZFS 파일에서 ACL 설정 및 표시를 참조하십시오.
예 8-10 Compact 형식으로 ACL 설정 및 표시
# ls -V file.1 -rw-r--r-- 1 root root 206663 Jun 23 15:06 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 206663 Jun 23 15:06 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 Jun 23 16:04 dir.2 user:gozer:rwx-----------:fd----:allow owner@:rwxp--aARWcCos:------: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 Jun 23 16:04 dir.2 user:cindy:rwx-----------:fd----:allow user:gozer:rwx-----------:fd----:allow owner@:rwxp--aARWcCos:------:allow group@:r-x---a-R-c--s:------:allow everyone@:r-x---a-R-c--s:------:allow
예 8-11 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 Jun 23 16:10 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 Jun 23 16:11 file.1 owner@:rwxpdDaARWcCos:------:allow group@:rwxp----------:------:allow everyone@:--------------:------:allow
이 예에서 새로 만든 디렉토리가 이 디렉토리에 대한 액세스를 제어하는 ACE와 앞으로 새로 만들 디렉토리의 자식으로 전파하기 위한 ACE를 모두 상속합니다.
# mkdir subdir.1 # ls -dV subdir.1 drwxrwx---+ 2 root root 2 Jun 23 16:13 subdir.1 owner@:rwxpdDaARWcCos:fd----:allow group@:rwxp----------:fd----:allow everyone@:--------------:fd----:allow
fd---- 항목은 상속을 전파하기 위한 것이며 액세스 제어 중 고려되지 않습니다. 이 예에서 상속된 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 Jun 23 16:15 file.2 owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
예 8-12 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 Jun 23 16:17 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 Jun 23 16:18 test1.dir/file1 owner@:rw-pdDaARWcCos:------:allow group@:rw-p----------:------:allow everyone@:--------------:------:allow
그 다음, testdir 디렉토리에서 cc 컴파일러를 사용하여 t라는 실행 파일이 생성됩니다.
# cc -o t t.c # ls -V t -rwxrwx---+ 1 root root 7396 Dec 3 15:19 t owner@:rwxpdDaARWcCos:------:allow group@:rwxp----------:------:allow everyone@:--------------:------:allow
결과 권한은 0770입니다. cc가 권한 0777을 요청했기 때문이며, 이에 따라 owner@, group@, everyone@ 항목에서 실행 권한이 상속됩니다.