본문 바로가기

Linux

09. CentOS7 - ACL(Access Control List)

1. ACL(Access Control List)

접근제어목록(Access Control List)을 설정한 것으로, 파일이나 디렉토리에 특정 사용자나 그룹에게만 일정 권한을 부여하는 것이다.

 

 


 

2. 명령어

2.1. setfacl

파일/디렉토리의 추가적인 권한을 수정할 때 사용

  • 사용법 : setfacl [option] [권한] [파일/디렉토리]
  • 옵션
    • -m : ACL 설정 (수정)
    • -x : ACL 삭제
    • -R : 디렉토리인 경우 하위 디렉토리 내용까지 권한 변경
    • -b : 모든 ACL 삭제 (mask 포함)
  • 임시로 모든 유저에 대해서 권한을 부여하거나 제거할 때 mask를 사용한다.
  • 참고: 디렉토리의 경우 실행 권한이 없으면 해당 디렉토리에 접근이 불가하다.

 

2.2. getfacl

파일/디렉토리의 추가적인 권한을 확인할 때 사용

  • 사용법 : getfacl [option] [파일/디렉토리]
  • 옵션
    • -d : 기본 정보에 대해 확인
    • -R : 디렉토리인 경우 하위 디렉토리 내용까지 확인 가능

 

2.3. acl 실습

 

※ 테스트용 디렉토리 acl 생성 후 chmod 751 설정.

 

※ acl 디렉토리에 대해서 유저 a에게는 모든 권한을, 유저 b에게 읽기 권한을 부여.

테스트

  • acl을 설정하면 권한 뒤에 + 기호가 붙는 것을 확인할 수 있다.
  • a 계정으로 /root/acl 디렉토리로 이동, 파일 생성, 파일 내용 확인이 모두 가능한 것을 확인할 수 있다.
  • b 계정의 경우 /root/acl 디렉토리로 이동, 파일 내용 확인은 가능하지만, 파일 생성은 불가한 것을 확인할 수 있다.

 

※ acl 디렉토리에 대해서 b에 대한 acl 설정 삭제.

 

※ acl 디렉토리에 대해서 mask권한 rx로 설정.

  • acl 디렉토리에 대해 a의 쓰기 권한이 삭제 되어 파일 생성이 불가한 것을 확인할 수 있다.
  • 유저 권한 < mask

 

※ acl 디렉토리의 하위 디렉토리 및 파일에 대해서 소유자와 그룹에 대해서 모든 권한, 기타사용자에 대해서 실행 권한만 부여.

 


 

[문제 풀어보기]

1.1. 최상위 디렉토리에 mhan 이름으로 회사 생성. 아래 테이블과 동일하게 부서 및 유저 생성

부서/이름 aa bb cc dd ee ff ceo
admin r rw - - r r r
sales - - r rw r r r
tech - - - - rw - r
fin - - - - - rw rw

 

1.2. 설정 완료 후 모든 사용자 접근 테스트

테스트 1, 2
테스트 3, 4

 

2. fin 디렉토리의 mask 값을 rx로 설정 후 ff, ceo의 권한 확인

테스트 1, 2

 

3. fin 디렉토리에 하위 디렉토리를 생성할 때에는 반드시 775 권한을 갖도록 설정

 


 

Reference.

https://blog.cafe24.com/1534

 

[리눅스] ACL(Access Control List) 설정

카페24 서버호스팅 Guide ACL(Access Control List) 설정 1. acl이란 - 접근제어목록(Access Control List)을 설정한 것으로, 파일이나 디렉토리에 특정 사용자나 그룹에게만 일정권한을 부여하는 것이다. 2. acl..

blog.cafe24.com

https://it-serial.tistory.com/58

 

[Linux] ACL 개념 & 설정법(setfacl, getfacl)

리눅스는 대체적으로 서버로 많이 활용되고 있습니다. 서버로 활용되면 보안을 철저히 해야합니다. 간단하지만 리눅스 서버 보안 관련하여 ACL을 사용하기도 합니다. ○ ACL이란 ? ▷ Access Control L

it-serial.tistory.com