본문 바로가기
LINUX 운영체제 보안

CentOS ACL(접근제어목록) 설정하기

by 웹하는빡통 2019. 10. 28.

ACL이란?

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

그럼 왜 ACL를 이용하여 접근 권한을 설정하는 이유는 무엇일까?

chmod명령어는 시스템에 존재하는 모든사용자에게 권한을 부여한다.

하지만 ACL기능을 이용하면 내가 원하는 특정 사용자에게 권한을 부여 할 수 있다.

 

특정 사용자에게 권한 주기

root 계정으로 /tmp 경로에 root.txt이라는 파일을 만들어보자

getfacl root.txt로 해당 파일의 정보(접근권한 정보등)를 확인해본다. 퍼미션이 770으로 설정된 상태라는 것을 알 수 있다.

u2이라는 계정으로 접속하여 root.txt에 접근한 결과 접근이 거부된 것을 알 수 있다. 이제 우리는 특정 사용자(u2)에게 접근권한을 주도록 하자.

 

 

setfacl -m user:u2:r root.txt명령어로 통하여 해당 u2라는 계젱에 읽기(r)권한을 부여하자.

 

권한 설정 후 다시 u2 계정으로 접속하여 root.txt파일에 접근한 결과 root.txt파일을 읽을 수 있게 된다. 

 

root.txt 파일 정보를 확인 한 결과 u2:r--이라는 권한이 부여된 것을 알 수 있다.

 

 

 

디렉토리 폴더에 생기는 모든파일에 특정 사용자에게 권한을 부여하기

/tmp안에 mytemp라는 특정 디렉토리를 만든 후 이 디렉토리안에 생성하는 모든 파일을 특정사용자만 접근 하도록 설정을 해보자. 

setfacl -m d:user:u2:rw /tmp로 설정을 하면 특정 사용자(u2)는 따로 권한 설정없이 모든 파일에 접근이 가능하다.

 

확인 결과 u2계정에 접속하여 mytemp안에 있는 아무 파일에 접근이 가능한 것을 알 수 있다.

 

권한 없애 주기

만약 특정사용자 권한을 없애주고 싶으면 -x user:u1 [파일이름]으로 설정해주면 권한을 없애 줄 수 있다.

또한 권한을 설정한 모든 사용자의 권한을 없애고 싶으면 --remove-all명령어를 이용하면 된다.

 

댓글