RHCSA : 파일 시스템 생성 및 구성 – ACL(Access Control List) 생성 및 관리

RHCSA 주제입니다. CertDepot 사이트를 번역 및 내용 추가하였으며, 컨텐츠 관련 모든 권리는 CertDepot에 있습니다.

시작하기 전에

기본 파일 권한으로는 부족하므로, ACL을 사용할 줄 알아야 한다. ACL은 접근 제어 목록(Access Control Lists)을 의미한다.

사전 준비사항

실습하지 전에 파티션이 ACLs을 사용할 수 있는지 확인해야 한다. ACLs이 작동하는지 확인하려면 다음과 같이 입력한다.

[root@server2 ~]# mount
/dev/mapper/myvg-mylv on /mnt type ext4 (rw)
[root@server2 ~]# 

이 경우, /etc/fstab파일을 수정하여, defaults 또는 rw 옵션 뒤에 ,acl을 추가하여야 한다. 그리고, 파티션을 다음과 같이 리마운트 하여야 한다.

[root@server2 ~]# vim /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Tue Apr 19 12:47:49 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        1 1
UUID=8bee4769-02a2-4247-9cb8-d24df45b10c4 /boot                   xfs     defaults        1 2
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/mapper/myvg-mylv   /mnt                    ext4    defaults,acl    1 2
~                                                                                     
~                                                                                     
~                                                                                     
~                                                                                     
~                                                                                     
~                                                                                     
~                                                                                     
~                                                                                     
~                                                                                     
"/etc/fstab" 12L, 516C                                              12,1         모두
[root@server2 ~]# mount -o remount /
[root@server2 ~]# 

파일과 사용자에 대한 ACL 설정

1. bob이라는 사용자에게 f라는 파일의 읽기/쓰기 권한을 주려고 한다면 다음과 같이 입력한다(여기서 -m은 수정 옵션, u는 사용자, rw-는 읽기/쓰기 권한을 의미한다).
[root@server2 mnt]# setfacl -m u:bob:rw- f
[root@server2 mnt]# 
2. 파일 f의 현재 접근 제어 목록을 요청하려면 다음과 같이 입력한다.
[root@server2 mnt]# getfacl f
# file: f
# owner: root
# group: root
user::rw-
user:bob:rw-
group::r--
mask::rw-
other::r--

[root@server2 mnt]# 
3. 사용자 bob에게 허용된 권한을 제거하려면(-x옵션은 제거, u는 사용자를 의미한다) 다음과 같이 입력한다.
[root@server2 mnt]# setfacl -x u:bob f
[root@server2 mnt]# 
4. 파일 f에 대한 모든 ACL을 제거하려면(-b옵션은 전부 제거를 의미한다) 다음과 같이 입력한다.
[root@server2 mnt]# setfacl -b f
[root@server2 mnt]# 

디렉토리와 그룹에 대한 ACL 설정

1. team이라는 그룹에 dir디렉토리와 내부의 모든 파일에 대한 읽기/실행 권한을 주려고 한다면(여기서 -R은 재귀 옵션, -m은 수정 옵션, g는 그룹, r-x는 읽기/실행 권한을 의미한다) 다음과 같이 입력한다.
[root@server2 mnt]# setfacl -R -m g:team:r-x dir
[root@server2 mnt]# 
2. dir 디렉토리의 현재 접근 제어 목록을 요청하려면 다음과 같이 입력한다.
[root@server2 mnt]# getfacl dir
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
group:team:r-x
mask::r-x
other::r-x

[root@server2 mnt]# 

추가 자료

at4am의 프로필 이미지

at4am

2016년 04월 27일

글쓴이의 더 많은 글 읽어보기