접근제어[사용자]
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 |
댓글