023) 리눅스 파일 접근 제어: getfacl과 setfacl 명령어 완벽 가이드

안녕하세요, mj 입니다. 오늘은 리눅스에서 파일과 디렉토리의 접근 제어를 관리하는 데 유용한 두 가지 명령어, getfaclsetfacl에 대해 알아보겠습니다. 이 포스팅에서는 이 명령어들의 사용 목적과 방법을 설명하여 리눅스 학습자들이 쉽게 이해할 수 있도록 하겠습니다.

리눅스의 getfacl과 setfacl: 파일 접근 제어 관리

getfacl과 setfacl의 사용 목적

getfaclsetfacl은 리눅스에서 파일과 디렉토리의 접근 제어 목록(ACL)을 관리하는 데 필수적인 명령어입니다. 기본적인 파일 권한 설정은 사용자, 그룹, 기타 사용자로 나누어 접근 권한을 설정합니다. 그러나 ACL을 사용하면 더 세부적인 권한 설정이 가능해집니다. 이를 통해 특정 사용자나 그룹에 대해 개별적인 접근 권한을 부여하거나 제한할 수 있습니다.

getfacl 명령어 사용 방법

getfacl 명령어는 파일이나 디렉토리의 현재 ACL을 조회하는 데 사용됩니다. 사용법은 다음과 같습니다:

[root@호스트명 ~]# getfacl 파일명

예를 들어, example.txt 파일의 ACL을 확인하고 싶다면 다음과 같이 입력합니다:

[root@호스트명 ~]# getfacl example.txt

이 명령어를 실행하면 다음과 같은 출력 결과가 나타납니다:

#
# file: example.txt
# owner: root
# group: root
user::rw-
user:alice:rw-
group::r--
mask::rw-
other::r--

출력 결과를 통해 'alice' 사용자가 읽기 및 쓰기 권한을 가지고 있음을 확인할 수 있습니다.

setfacl 명령어 사용 방법

이제 setfacl 명령어를 사용하여 접근 권한을 설정해보겠습니다. 이 명령어는 파일이나 디렉토리에 대한 ACL을 수정하거나 추가하는 데 사용됩니다. 기본 사용법은 다음과 같습니다:

[root@호스트명 ~]# setfacl -m u:사용자:권한 파일명

예를 들어, example.txt 파일에 대해 사용자 'alice'에게 읽기 및 쓰기 권한을 부여하고 싶다면 다음과 같이 입력합니다:

[root@호스트명 ~]# setfacl -m u:alice:rw example.txt

이 명령어를 실행한 후 다시 getfacl을 사용하여 확인합니다:

[root@호스트명 ~]# getfacl example.txt

출력 결과는 다음과 같습니다:

#
# file: example.txt
# owner: root
# group: root
user::rw-
user:alice:rw-
group::r--
mask::rw-
other::r--

이제 'alice'는 해당 파일을 읽고 쓸 수 있습니다.

getfacl과 setfacl의 적절한 사용을 위한 계획

이제 getfaclsetfacl 명령어를 사용하기 위한 계획을 세워보겠습니다. 먼저, 시스템의 보안을 강화하기 위해 어떤 파일이나 디렉토리의 접근 권한을 변경해야 하는지를 결정합니다. 다음으로, 각 사용자나 그룹에 대해 어떤 권한을 부여할 것인지 정리합니다. 이렇게 계획을 세우면 명령어를 효율적으로 사용할 수 있습니다.

소설적 예시

가령, 한 회사의 IT 관리자 김씨는 부서별로 파일 접근 권한을 다르게 설정하려고 합니다. 인사팀은 직원의 개인 정보를 포함한 파일에 접근할 수 있어야 하며, 개발팀은 소스 코드에 대한 읽기와 쓰기 권한이 필요합니다. 김씨는 먼저 getfacl 명령어로 현재 설정된 권한을 확인합니다:

[root@호스트명 ~]# getfacl /data/hr_records

출력 결과는 다음과 같습니다:

#
# file: /data/hr_records
# owner: root
# group: hr_group
user::rwx
group::r-x
mask::rwx
other::---

현재 인사팀의 접근 권한이 설정되어 있는 것을 확인한 김씨는, 개발팀이 소스 코드 디렉토리에 접근할 수 있도록 setfacl 명령어를 사용하여 권한을 추가합니다:

[root@호스트명 ~]# setfacl -m g:dev_team:rwx /data/source_code

이 명령어를 실행한 후, 다시 확인합니다:

[root@호스트명 ~]# getfacl /data/source_code

출력 결과는 다음과 같습니다:

#
# file: /data/source_code
# owner: root
# group: dev_group
user::rwx
group::r-x
group:dev_team:rwx
mask::rwx
other::---

이 과정을 통해 각 팀은 필요한 파일에만 접근할 수 있게 되어 보안이 강화됩니다.

결론

getfacl 과 setfacl 에 대해 알아보았습니다. 감사합니다.

댓글

이 블로그의 인기 게시물

006) 컴퓨터 주요 부품 설명: CPU, 메모리, 디스크의 모든 것

011) Rocky Linux 9.5 설치 방법: 단계별 가이드와 설정 팁

001) 리눅스란? 기본 개념부터 활용까지 완벽 가이드