Oracle® Solaris 11.2의 ZFS 파일 시스템 관리

인쇄 보기 종료

업데이트 날짜: 2014년 12월
 
 

Verbose 형식으로 ZFS 파일에서 ACL 설정 및 표시

chmod 명령을 사용하여 ZFS 파일의 ACL을 수정할 수 있습니다. 다음과 같은 ACL 수정용 chmod 구문은 acl-specification을 사용하여 ACL 형식을 식별합니다. acl-specification에 대한 설명은 ACL 설정을 위한 구문 설명을 참조하십시오.

  • ACL 항목 추가

    • 사용자의 ACL 항목 추가

      % chmod A+acl-specification filename
    • index-ID로 ACL 항목 추가

      % chmod Aindex-ID+acl-specification filename

      이 구문은 지정된 index-ID 위치에 새 ACL 항목을 삽입합니다.

  • ACL 항목 바꾸기

    % chmod A=acl-specification filename
    % chmod Aindex-ID=acl-specification filename
  • ACL 항목 제거

    • index-ID로 ACL 항목 제거

      % chmod Aindex-ID- filename
    • 사용자로 ACL 항목 제거

      % chmod A-acl-specification filename
    • 파일에서 모든 복잡한 ACE 제거

      % chmod A- filename

Verbose ACL 정보는 ls – v 명령을 사용하여 표시됩니다. 예를 들면 다음과 같습니다.

# ls -v file.1
-rw-r--r--   1 root     root      206695 Jul 20 13:43 file.1
0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow

Compact ACL 형식 사용에 대한 자세한 내용은 Compact 형식으로 ZFS 파일에서 ACL 설정 및 표시를 참조하십시오.

예 7-1  ZFS 파일의 단순 ACL 수정

이 절에서는 기존 UNIX 항목, 사용자, 그룹 및 기타 항목이 ACL에 포함되는 단순 ACL을 설정하고 표시하는 예를 제공합니다.

다음 예에서 단순 ACL이 file.1에 존재합니다.

# ls -v file.1
-rw-r--r--   1 root     root      206695 Jul 20 13:43 file.1
0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow

다음 예에서 group@에 대해 write_data 권한이 부여됩니다.

# chmod A1=group@:read_data/write_data:allow file.1
# ls -v file.1
-rw-rw-r--   1 root     root      206695 Jul 20 13:43 file.1
0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
1:group@:read_data/write_data:allow
2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow

다음 예에서 file.1에 대한 권한이 644로 다시 설정됩니다.

# chmod 644 file.1
# ls -v file.1
-rw-r--r--   1 root     root      206695 Jul 20 13:43 file.1
0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow
예 7-2  ZFS 파일에 복잡한 ACL 설정

이 절은 복잡한 ACL 설정 및 표시의 예를 제공합니다.

다음 예에서 test.dir 디렉토리의 사용자 joe에 대해 read_data/execute 권한이 추가됩니다.

# chmod A+user:joe:read_data/execute:allow test.dir
# ls -dv test.dir
drwxr-xr-x+  2 root     root           2 Jul 20 14:23 test.dir
0:user:joe:list_directory/read_data/execute:allow
1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/read_xattr/write_xattr/execute/delete_child
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
2:group@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow

다음 예에서 사용자 joe에 대한 read_data/execute 권한이 제거됩니다.

# chmod A0- test.dir
# ls -dv test.dir
drwxr-xr-x   2 root     root           2 Jul 20 14:23 test.dir
0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/read_xattr/write_xattr/execute/delete_child
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
1:group@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
2:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
예 7-3  ZFS 파일의 권한과 ACL 상호 작용

다음 ACL 예에서 ACL 설정 후 파일/디렉토리의 권한 비트 변경 사이의 상호 작용을 보여줍니다.

다음 예에서 단순 ACL이 file.2에 존재합니다.

# ls -v file.2
-rw-r--r--   1 root     root        2693 Jul 20 14:26 file.2
0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow

다음 예에서 ACL allow 권한이 everyone@에서 제거됩니다.

# chmod A2- file.2
# ls -v file.2
-rw-r-----   1 root     root        2693 Jul 20 14:26 file.2
0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow

이 출력 결과에서 파일의 권한 비트는 644에서 640으로 재설정됩니다. everyone@에 대한 ACL 허용 권한을 제거할 때 everyone@에 대한 읽기 권한이 파일의 권한 비트에서 효과적으로 제거되었습니다.

다음 예에서 기존 ACL이 everyone@에 대한 read_data/write_data 권한으로 바뀝니다.

# chmod A=everyone@:read_data/write_data:allow file.3
# ls -v file.3
-rw-rw-rw-   1 root     root        2440 Jul 20 14:28 file.3
0:everyone@:read_data/write_data:allow

이 출력 결과에서 chmod 구문은 효과적으로 기존 ACL을 owner/group/everyone@에 대한 read_data/write_data:allow 권한(읽기/쓰기)으로 바꿉니다. 이 모델에서 everyone@은 모든 사용자나 그룹에 대한 액세스를 지정합니다. 소유자 및 그룹에 대한 권한을 대체할 owner@ 또는 group@ ACL 항목이 존재하지 않으므로 권한 비트가 666으로 설정됩니다.

다음 예에서 기존 ACL이 사용자 joe에 대한 읽기 권한으로 바뀝니다.

# chmod A=user:joe:read_data:allow file.3
# ls -v file.3
----------+  1 root     root        2440 Jul 20 14:28 file.3
0:user:joe:read_data:allow

이 출력 결과에서는 전통적인 파일 권한 구성 요소인 owner@, group@, everyone@에 대한 ACL 항목이 존재하지 않으므로 파일 권한이 000으로 계산됩니다. 파일 소유자는 다음과 같이 권한(및 ACL)을 재설정하여 이 문제를 해결할 수 있습니다.

# chmod 655 file.3
# ls -v file.3
-rw-r-xr-x   1 root     root        2440 Jul 20 14:28 file.3
0:owner@:execute:deny
1:owner@:read_data/write_data/append_data/read_xattr/write_xattr
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
2:group@:read_data/read_xattr/execute/read_attributes/read_acl
/synchronize:allow
3:everyone@:read_data/read_xattr/execute/read_attributes/read_acl
/synchronize:allow
예 7-4  ZFS 파일의 단순 ACL 복원

chmod 명령을 사용하여 파일 또는 디렉토리의 모든 복잡한 ACL을 제거할 수 있습니다.

다음 예에서 2개의 복잡한 ACE가 test5.dir에 존재합니다.

# ls -dv test5.dir
drwxr-xr-x+  2 root     root           2 Jul 20 14:32 test5.dir
0:user:lp:read_data:file_inherit:deny
1:user:joe:read_data:file_inherit:deny
2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/read_xattr/write_xattr/execute/delete_child
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
3:group@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
4:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow

다음 예에서 사용자 joelp에 대한 복잡한 ACL이 제거됩니다. 남은 ACL은 owner@, group@, everyone@에 대한 기본값을 포함합니다.

# chmod A- test5.dir
# ls -dv test5.dir
drwxr-xr-x   2 root     root           2 Jul 20 14:32 test5.dir
0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
/append_data/read_xattr/write_xattr/execute/delete_child
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
1:group@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
2:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
/read_acl/synchronize:allow
예 7-5  ZFS 파일에 ACL 세트 적용

ACL 권한을 개별적으로 적용할 필요가 없도록 ACL 세트를 사용할 수 있습니다. ACL 세트에 대한 자세한 내용은 ZFS ACL 세트를 참조하십시오.

예를 들어, 다음과 같이 read_set를 적용할 수 있습니다.

# chmod A+user:bob:read_set:allow file.1
# ls -v file.1
-r--r--r--+  1 root     root      206695 Jul 20 13:43 file.1
0:user:bob:read_data/read_xattr/read_attributes/read_acl:allow
1:owner@:read_data/read_xattr/write_xattr/read_attributes
/write_attributes/read_acl/write_acl/write_owner/synchronize:allow
2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow

다음과 같이 write_setread_set를 적용할 수 있습니다.

# chmod A+user:bob:read_set/write_set:allow file.2
# ls -v file.2
-rw-r--r--+  1 root     root        2693 Jul 20 14:26 file.2
0:user:bob:read_data/write_data/append_data/read_xattr/write_xattr
/read_attributes/write_attributes/read_acl:allow
1:owner@:read_data/write_data/append_data/read_xattr/write_xattr
/read_attributes/write_attributes/read_acl/write_acl/write_owner
/synchronize:allow
2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
:allow