지난 기사에서 (RHCSA 시리즈 파트 6) 우리는 어떻게 parted와 ssm을 사용하여 로컬 시스템 저장소를 설정하고 구성하는 방법을 설명하기 시작했습니다.

또한 시스템 부팅 중에 암호로 암호화된 볼륨을 생성하고 마운트하는 방법에 대해 논의했습니다. 또한 마운트된 파일 시스템에서 중요한 저장소 관리 작업을 수행하지 않도록 경고했습니다. 이를 염두에 두고 Red Hat Enterprise Linux 7에서 가장 많이 사용되는 파일 시스템 형식을 검토한 후 수동 및 자동 네트워크 파일 시스템 (CIFS 및 NFS)을 마운트, 사용 및 언마운트하는 주제를 다룰 것입니다.
준비 사항
더 진행하기 전에, Samba 서버와 NFS 서버가 사용 가능한지 확인하십시오 (NFSv2는 RHEL 7에서 더 이상 지원되지 않음에 유의하십시오).
본 안내서에서는 서버로 작동하는 IP 192.168.0.10의 기계와 클라이언트로 작동하는 RHEL 7 상자를 사용할 것이며, 클라이언트에 설치해야 할 패키지에 대해 나중에 설명하겠습니다.
RHEL 7의 파일 시스템 형식
RHEL 7부터 XFS가 고성능과 확장성으로 인해 모든 아키텍처의 기본 파일 시스템으로 도입되었습니다. 최신 테스트에 따르면, 레드햇 및 그 파트너가 주도하는 주요 하드웨어에서의 최대 파일 시스템 크기는 500 TB입니다.
XFS는 또한 확장된 사용자 속성(user_xattr)과 POSIX 접근 제어 목록(acl)을 기본 마운트 옵션으로 활성화시킵니다. 이는 ext3 또는 ext4와 달리(ext2는 RHEL 7부터 사용이 중지되었습니다) 마운트할 때 명령 줄이나 /etc/fstab에서 이러한 옵션을 명시적으로 지정할 필요가 없다는 것을 의미합니다(XFS 파일 시스템을 마운트할 때 이러한 옵션을 비활성화하려면 해당 경우에 no_acl과 no_user_xattr를 명시적으로 사용해야 합니다).
확장된 사용자 속성은 파일과 디렉터리에 할당되어 파일의 MIME 유형, 문자 집합 또는 인코딩과 같은 임의의 추가 정보를 저장할 수 있습니다. 사용자 속성의 접근 권한은 정규 파일 권한 비트에 의해 정의됩니다.
접근 제어 목록
시스템 관리자는 모두 익숙합니다. 새로운 것이나 전문가라도 파일 및 디렉토리의 정규 액세스 권한에 대해, 소유자, 그룹 및 “모든 사용자”에 대한 특정 권한 (읽기, 쓰기, 그리고 실행)을 지정합니다. 그러나 필요하다면 RHCSA 시리즈의 제3부를 참조하여 기억을 새롭게 할 수 있습니다.
그러나 표준 ugo/rwx 설정은 서로 다른 사용자에 대한 다른 권한을 구성할 수 없기 때문에, 더 자세한 액세스 권한을 정의하기 위해 ACLs가 도입되었습니다. 일반 권한으로 지정된 것보다 파일 및 디렉토리에 대한 권한을 더 상세하게 정의합니다.
사실, ACL로 정의된 권한은 파일 권한 비트로 지정된 권한의 상위 집합입니다. 모든 것이 실제 세계에서 어떻게 적용되는지 알아보겠습니다.
1. ACL에는 두 가지 유형이 있습니다. 액세스 ACL은 특정 파일이나 디렉토리에 적용될 수 있으며, 기본 ACL은 디렉토리에만 적용될 수 있습니다. 그 디렉토리에 포함된 파일에는 ACL이 설정되어 있지 않으면 부모 디렉토리의 기본 ACL을 상속합니다.
2. 시작하려면 ACL을 사용자별, 그룹별 또는 파일의 소유 그룹이 아닌 사용자별로 구성할 수 있습니다.
3. ACL는 각각 setfacl을 사용하여 설정(및 제거)되며 각각 -m 또는 -x 옵션을 사용합니다.
예를 들어, tecmint 그룹을 만들고 사용자 johndoe와 davenull을 추가해 보겠습니다:
# groupadd tecmint # useradd johndoe # useradd davenull # usermod -a -G tecmint johndoe # usermod -a -G tecmint davenull
그리고 두 사용자가 보조 그룹 tecmint에 속해 있는지 확인해 봅시다:
# id johndoe # id davenull

이제 /mnt 내에 playground 디렉토리와 testfile.txt 파일을 만들어 보겠습니다. 그룹 소유자를 tecmint로 설정하고 기본 ugo/rwx 권한을 770으로 변경합니다(파일의 소유자와 그룹 소유자에게 읽기, 쓰기 및 실행 권한 부여):
# mkdir /mnt/playground # touch /mnt/playground/testfile.txt # chmod 770 /mnt/playground/testfile.txt
그런 다음 사용자를 johndoe와 davenull로 전환하여 파일에 쓰기를 해 봅시다:
echo "My name is John Doe" > /mnt/playground/testfile.txt echo "My name is Dave Null" >> /mnt/playground/testfile.txt
지금까지 잘 진행되었습니다. 이제 사용자 gacanepa가 파일에 쓰도록 하려고 하면 쓰기 작업이 실패할 것입니다. 그것은 예상대로입니다.
그러나 그룹 tecmint의 구성원이 아닌 사용자 gacanepa가 /mnt/playground/testfile.txt에 쓰기 권한이 필요한 경우 어떻게 해야 할까요? 아마도 먼저 그 사용자 계정을 그룹 tecmint에 추가하는 것이 먼저 떠오를 것입니다. 그러나 이렇게 하면 해당 사용자가 그룹에 대해 쓰기 비트가 설정된 모든 파일에 쓰기 권한이 생기게 됩니다. 우리는 그것을 원하지 않습니다. 단지 /mnt/playground/testfile.txt에 쓸 수 있도록 하고 싶습니다.
# touch /mnt/playground/testfile.txt # chown :tecmint /mnt/playground/testfile.txt # chmod 777 /mnt/playground/testfile.txt # su johndoe $ echo "My name is John Doe" > /mnt/playground/testfile.txt $ su davenull $ echo "My name is Dave Null" >> /mnt/playground/testfile.txt $ su gacanepa $ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt

사용자 gacanepa에게 /mnt/playground/testfile.txt에 대한 읽기 및 쓰기 액세스 권한을 부여합시다.
루트로 실행하고,
# setfacl -R -m u:gacanepa:rwx /mnt/playground
성공적으로 ACL을 추가하여 gacanepa가 테스트 파일에 쓸 수 있도록 했습니다. 그런 다음 사용자를 gacanepa로 전환하고 파일에 다시 쓰려고 해보세요:
$ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt
특정 파일이나 디렉토리의 ACL을 보려면 getfacl을 사용하세요:
# getfacl /mnt/playground/testfile.txt

디렉토리에 기본 ACL을 설정하려면(내용이 덮어쓰기되지 않는 한 상속되는 디렉토리), 규칙 앞에 d:를 추가하고 파일 이름 대신 디렉토리를 지정하세요:
# setfacl -m d:o:r /mnt/playground
위 ACL은 소유자 그룹에 속하지 않은 사용자가 /mnt/playground 디렉토리의 미래 내용에 대한 읽기 액세스를 허용합니다. 변경 전후의 getfacl /mnt/playground 출력의 차이에 유의하세요:

RHEL 7 스토리지 관리 가이드 공식 제20장에는 더 많은 ACL 예제가 제공되며, 참고 자료로 삼아 권장합니다.
Source:
https://www.tecmint.com/rhcsa-exam-configure-acls-and-mount-nfs-samba-shares/