Linux/서버 보안(CentOS)

접근제어[사용자]

D4tai1 2018. 11. 11.

1. ACL(Access Control List)

1) ACL이란?

▶ 기존 퍼미션 접근제어에서 조금 더 세밀하게 접근제어를 하는 방식을 말한다.


2) 명령어

 [1] setfacl

   ▶ set file access control list의 약자이다.

   ▶ -m 옵션은 추가 및 변경 시에 사용한다.

   ▶ -x 옵션은 삭제 시에 사용한다.

   ▶ --remove-all 옵션은 ACL전체 삭제 시 사용한다.

   ▶ 항목에는 user(u), group(g), other(o) 를 사용하며 약자를 사용해도 된다.

   ▶ setfacl [옵션] [대상타입] : [대상] : [부여할 권한] [파일경로] 방식으로 사용한다.


 [2] getfacl

   ▶ getfacl [파일명] 방식으로 사용한다.

   ▶ 파일의 ACL을 확인할 수 있다.


3) 시연

 [1] 계정생성

   ▶ 먼저 테스트 하기 위한 계정 user100을 생성한다.


 [2] root계정의 파일생성

   ▶ root사용자가 파일을 생성한다.


 [3] 새로운 계정으로 root파일 접근

   ▶ 새로운 user100계정으로 root사용자가 생성한 happy파일에 접근하자 읽기권한만 있다고 나온다.


 [4] 사용자 접근제어

   ▶ [setfacl -m user:user100:rw happy] 명령어로 user100사용자만 특별히 읽고 쓰는 권한을 부여한다.

   ▶ 이후 [ls -l]명령어를 검색하니 권한 뒤에 +(플러스)기호가 붙은 것을 확인할 수 있다.

   ▶ 기본은 .(마침표)기호이지만 +(플러스)기호는 ACL이 설정되었다는 것을 의미한다.


 [5] root파일 재접근

   ▶ ACL추가 후 user100계정이 root소유의 파일을 수정 가능한 것을 알 수 있다.


 [6] ACL 확인

   ▶ [getfacl happy] 명령어로 happy파일의 ACL을 확인할 수 있다.

   ▶ 6라인을 보면 user100계정은 읽고 쓸 수 있도록 설정되어 있다.


 [7] ACL 제거

   ▶ [setfacl -x user:user100: happy] 명령어를 사용하여 happy파일의 user100계정으로부터 ACL을 제거한다.

   ▶ [getfacl happy] 명령어를 사용하여 happy파일의 ACL을 확인한다.


 [8] 한 파일에 대한 전체 ACL제거

   ▶ [setfacl --remove-all happy] 명령어로 happy파일의 ACL전체를 제거한다.

   ▶ [ls -l] 명령어를 사용하여 ACL설정이 제거됨을 확인한다.


 [9] umask 부여

   ▶ [setfacl -m user:user100:rw test] 명령어를 이용하여 test파일에 user100이 읽고 쓸 수 있도록 ACL을 설정한다

   ▶ [setfacl -m mask::r test] 명령어를 이용하여 umask를 부여하여 읽는 권한만 부여한다.


 [10] umask 부여 후 확인

   ▶ 파일에 내용을 추가해서 쓰려고 하자 권한문제가 발생한다.

   ▶ 그래서 [getfacl test] 명령어로 test파일에 대한 ACL을 확인하자 우측에 [#effective:r--] 문구를 확인할 수 있다.

   ▶ 이 말은 원래 접근제어리스트에 마스크를 씌워 보이지 않도록 한 후 읽기권한만 부여한 것이다.

   ▶ 즉, 관리자가 잠시동안 기존접근제어리스트를 마스크로 가린 후 읽기권한만 부여할 경우에 이런식으로 사용한다.

   ▶ 이 경우 마스크를 해제해주면 원래 접근제어리스트대로 접근이 가능하다.


 [11] 다른 사용자의 홈 디렉터리 접근

   ▶ 이 경우 홈 디렉터리에 ACL을 설정하면 접근이 가능하다.


※ 추가지식

  ▶ 파일을 복사할 때 [cp -a "원본파일경로" "복사될파일경로 및 파일명"]과 같이 -a옵션을 부여하면 ACL도 복사된다.



'Linux > 서버 보안(CentOS)' 카테고리의 다른 글

파일암호화[비대칭키]  (0) 2018.11.11
파일암호화[대칭키]  (0) 2018.11.11
접근권한[퍼미션]  (0) 2018.10.27
SSH의 SCP 기능  (0) 2018.10.09
TCP Wrapper  (0) 2018.10.09

댓글