주:

Oracle Linux에서 ACL 사용 및 사용

소개

ACL(Access Control List)은 디렉토리 및 파일에 대한 액세스 제어를 제공합니다. ACL은 소유자, 그룹 및 기타 모든 시스템 사용자에 대해 읽기, 쓰기 및 실행 권한을 설정할 수 있습니다.

ACL은 특정 사용자 또는 그룹이 ACL 사용 파일 및 디렉토리에 액세스하는 방법을 지정하는 규칙 세트로 구성됩니다. 일반 ACL 항목은 단일 파일 또는 디렉토리에 대한 액세스 정보를 지정합니다. 기본 ACL 항목은 디렉토리에서만 설정되며, 액세스 ACL이 없는 디렉토리 내의 모든 파일에 대한 기본 액세스 정보를 지정합니다.

디렉토리에 기본 ACL을 설정하면 해당 하위 디렉토리가 자동으로 동일한 권한을 상속합니다. ACL은 btrfs, ext3, ext4, OCFS2XFS 파일 시스템과 함께 사용할 수 있으며 마운트된 NFS 파일 시스템을 사용할 수 있습니다.

목표

요구 사항

사용 가능한 디스크가 있고 Oracle Linux에 완전히 패치가 적용된 설치 시스템입니다.

랩 환경 설정

주: 무료 실습 환경을 사용하는 경우 Oracle Linux Lab Basics에서 연결 및 기타 사용 지침을 참조하십시오.

  1. 아직 연결되지 않은 경우 터미널을 열고 ssh를 통해 ol-node01 인스턴스에 연결합니다.

    ssh oracle@<ip_address_of_instance>
    
  2. 블록 볼륨이 존재하는지 확인합니다.

    sudo lsblk -f
    

    무료 연습 환경의 출력에는 기본 OS를 포함하는 sda 블록 장치와 이 연습에서 사용하는 sdb 블록 장치가 표시됩니다. -f 옵션을 사용하면 파일 시스템 유형(FSTYPE) 및 블록 UUID(범용 고유 식별자)가 표시됩니다.

ACL 지원을 사용하여 파일 시스템 마운트

  1. 마운트 위치 디렉토리를 생성합니다.

    sudo mkdir /test
    
  2. ACL 지원이 있는지 확인합니다.

    ext4, btrfsxfs와 같은 Oracle Linux 파일 시스템은 acl 마운트 옵션을 기본값으로 사용으로 설정합니다. ext4 파일 시스템(예: /dev/sdb1)에서 tune2fs를 사용하여 확인합니다.

    sudo tune2fs -l /dev/sdb1 | grep -i acl
    

    출력 예:

    [oracle@ol-node01 ~]$ sudo tune2fs -l /dev/sdb1 | grep -i acl
    Default mount options:    user_xattr acl
    
  3. ACL을 지원하는 디스크를 마운트합니다.

    파일 시스템에서 기본적으로 acl 마운트 옵션이 사용으로 설정되지 않은 경우 mount 명령을 사용할 때 -o acl를 전달합니다. /dev/sdb1ext4를 사용하므로 이 옵션은 이미 기본적으로 설정되어 있습니다.

    sudo mount -t ext4 /dev/sdb1 /test
    

    재부트 시 이 마운트 지점이 지속되도록 하려면 fstab 파일에 추가합니다.

    MYUUID=$(sudo blkid | grep UUID= | grep sdb1 | awk '{ print $2 }')
    echo "$MYUUID /test ext4 defaults 0 0" | sudo tee -a /etc/fstab > /dev/null
    
  4. 파일 시스템 마운트가 존재하는지 확인하십시오.

    df -T | grep sdb1
    

    출력은 ext4 파일 시스템 /dev/sdb1가 마운트 지점 /test에 있음을 보여줍니다.

ACL 기능 사용

  1. 새 마운트 지점 아래에 파일을 생성해 봅니다.

    touch /test/file1
    

    출력 예:

    touch: cannot touch '/test/file1': Permission denied
    

    oracle 사용자에게 /test 디렉토리에 파일을 만들 수 있는 권한이 없기 때문에 명령이 실패합니다.

  2. 디렉토리의 ACL 정보를 가져옵니다.

    sudo getfacl /test
    

    출력 예:

    [oracle@ol-node01 ~]$ sudo getfacl /test
    getfacl: Removing leading '/' from absolute path names
    # file: test
    # owner: root
    # group: root
    user::rwx
    group::r-x
    other::r-x
    
  3. 디렉토리에 ACL 규칙을 추가합니다.

    sudo setfacl -m u:oracle:rwx /test
    

    규칙은 read, writeexecute 권한을 oracle 사용자에게 부여합니다.

  4. 디렉토리의 업데이트된 ACL 정보를 확인합니다.

    sudo getfacl /test
    

    출력 예:

    getfacl: Removing leading '/' from absolute path names
    # file: test
    # owner: root
    # group: root
    user::rwx
    user:oracle:rwx
    group::r-x
    mask::rwx
    other::r-x
    

    출력에는 새로 추가된 user:oracle:rwx 행이 표시됩니다.

  5. 디렉토리의 긴 목록 형식을 표시합니다.

    ls -ld /test
    

    출력 예:

    drwxrwxr-x+ 3 root root 4096 Jul 13 20:48 /test
    

    출력에 표시된 권한에는 ACL 포함을 나타내는 더하기 기호(+)가 포함됩니다.

  6. 파일을 다시 생성해 보십시오.

    touch /test/file1
    

    이번에는 명령이 성공해야 합니다.

  7. 파일 생성을 확인합니다.

    ls -l /test
    

man getfacl 또는 man setfacl 페이지에서 추가 옵션 및 예를 확인하십시오.

추가 정보

기타 관련 리소스 참조:

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 보다 무료 학습 컨텐츠에 접근할 수 있습니다. 또한 education.oracle.com/learning-explorer을 방문하여 Oracle Learning Explorer가 됩니다.

제품 설명서는 Oracle Help Center를 참조하십시오.