ENCORE CLOUD ARCHITECTURE TIL 3/2 Linux CentOS

신민창·2021년 3월 2일
0

TIL

목록 보기
17/46

ACL (Access Control List)

기본 권한만으로는 다양한 대상에 대한 구체적인 권한을 설정할 수 없음 (소유자, 소유그룹, 기타사용자)
다양한 대상을 지정하여 권한을 설정할 수 있음
특정 사용자
특정 그룹
ACL 관련 명령어
getfacl <대상> : 대상에 설정된 ACL 정보를 확인
setfacl <ACL옵션> <대상> : 대상에 ACL 정보를 입력
옵션
-m : 설정할 ACL 정보 입력/수정
분류: u(user), g(group), m(mask)
대상: 특정 대상의 이름/UID/GID, 마스크는 이 부분 비움 (m::)
권한: r, w, x, -(---)
-x : 특정 ACL 항목 제거. 항목 삭제 시 권한 부분은 명시할 필요 없음
-b: ACL 전체 삭제
mask : ACL 설정시 마스크 항목이 자동으로 생성. setfacl로 설정한 사용자에게 권한이 적용되도록 mask 값이 자동 설정. mask는 소유자를 제외한 나머지 전부에게 적용
ACL의 마스크 값의 종류: 일반파일(rw,r,-) 디렉토리(rwx,rx,-)
마스크가 현재 설정되어있는 ACL의 권한보다 적을 경우 effective(실효권한)을 따로 표기해줌

기본권한이 적용되는 순서

파일의 소유자인가? Y → 소유자 권한 사용
파일의 소유그룹인가? Y → 소유그룹 권한 사용
기타 사용자 권한 사용

ACL권한이 적용되는 순서

파일의 소유자인가? Y → 소유자 권한 사용
파일에 이 사용자에 대한 ACL이 설정되어 있는가? Y → 해당 ACL 사용
파일의 소유그룹인가? Y → 소유그룹 권한 사용
파일에 이 사용자의 그룹에 대한 ACL이 설정되어 있는가? Y → 해당 ACL 사용
기타 사용자의 권한 사용

Default ACL

디렉토리에 설정되는 ACL
디렉토리 내에 생성되는 파일들에 기본적으로 적용되는 ACL\
상속되는 특징이 있음
Default ACL 은 ACL과 다름: 디렉토리 자체의 ACL을 별도로 설정하고, 디폴트 ACL설정
설정방법
기존 acl 설정방법과 동일
분류 앞에 d: 추가
ex) setfacl -m d:u:encore:rw dirA
삭제방법 동일 : -x d:u:encore
디폴트 ACL만 전부 삭제 : -k

실습해보기

사용자 관리 실습

  1. CentOS에 다음 사용자를 생성하시오. 각 사용자의 고유 그룹이 생성되게 하시오.

그룹에 소속시킬 사용자와 UID : ironman(10001),captain(10002),hulk(10003),thor(10004), spiderman(10005)
사용자의 홈 디렉토리 : /home/avengers/[사용자명]
사용자의 쉘 : /bin/bash

# mkdir /home/avengers  사용자 홈 디렉터리 생성
# useradd -D -b /home/avengers 기본 홈 디렉터리 경로 위치 설정 변경
# useradd -u 10001 ironman  사용자 추가
# useradd -u 10002 captain
# useradd -u 10003 hulk
# useradd -u 10004 thor
# useradd -u 10005 spiderman
  1. CentOS 시스템에 그룹을 생성하고, 1번에서 생성한 사용자들의 보조그룹으로 지정하시오.

그룹 이름 : avengers
그룹 GID : 10000

# groupadd -g 10000 avengers 그룹 생성
# usermod -G avengers ironman 기존 사용자 보조그룹 정보 변경
# usermod -G avengers captain
# usermod -G avengers hulk
# usermod -G avengers thor
# usermod -G avengers spiderman
  1. avengers 그룹의 사용자들은 자료를 공유하기 위한 공간을 필요로 한다. /shield 디렉토리를 생성하고, 해당 디렉토리 내에 생성되는 파일이 avengers 그룹의 소유로 작성되도록 설정하시오.
    그리고 공유 디렉토리 내 파일은 파일을 생성한 사람만이 삭제할 수 있도록 설정하시오.
# mkdir /shield 공유 디렉터리 생성
# chmod 770 /shield 권한 설정
# chgrp avengers /shield 소유 그룹 변경
# chmod 3770 /shield 특수 권한 부여
  1. 지금부터 새로운 사용자를 시스템에 추가하여야 한다. 이후 생성되는 사용자를 구분하기 위하여 다음과 같이 기본 설정을 변경하시오.
  • /home/villain 경로에 사용자 홈 디렉토리를 생성시키도록 설정
  • 추가되는 사용자의 만료일자(Expire)를 2021년 12월 31일로 자동설정
# mkdir /home/villain 디렉터리 생성
# useradd -D -b /home/villain 디렉터리 베이스 경로 변경
# useradd -D -e 2021-12-31 만료일자 설정
# useradd -D 기본 설정 확인
  1. 4번의 조건에 맞게 사용자가 생성되는지 다음 사용자를 생성하여 확인하시오.
    thanos(20001)
# useradd -u 20001 thanos 사용자 생성
  1. thanos 사용자에 대한 보안 설정을 강화하기 위해 다음과 같이 설정을 변경하시오
  • 패스워드 최소 사용기간 : 1일
  • 패스워드 최대 사용기간 : 30일
  • 패스워드 만료 전 경고기간 : 7일
  • 패스워드 만료 후 비활성화 기간 : 15일
  • 계정 만료 일자 : 2021년 10월 31일
# chage -m 1 -M 30 -W 7 -I 15 -E 2021-10-31 thanos
  1. ironman 사용자로 /shield 디렉토리 내에 비밀 문서를 만드시오. 문서의 정보는 다음과 같다.
    문서명 : .security.txt
    소유자 : ironman
    소유그룹 : avengers
    권한 : rw- --- ---
ironman$ touch /shield/.security.txt 아이언맨 사용자로 파일 생성
ironman$ chmod 600 /shield/.security.txt 권한 변경
  1. 7번에서 만든 문서는 avengers 그룹의 사용자들도 열어볼 수 없다.
    하지만 만일에 대비해 avengers 그룹의 사용자들이 파일의 내용을 열어볼 수 있도록 하기 위해 다음과 같이 준비하시오.
  • /bin/vim 파일을 /shield 경로로 복사하고, 파일의 이름을 vim2로 변경한다.
  • vim2 파일을 통해 avengers 그룹의 사용자만이 .securiry.txt 파일을 열어볼 수 있도록 설정한다.
ironman$ cp /bin/vim /shiled/vim2 파일 복사
ironman$ chmod 4750 /shield/vim2 권한 설정 변경

ACL 설정 실습

Root 사용자의 권한으로 다음 각 항목을 설정하시오.

  1. ACL 설정할 디렉토리 생성하고 소유권한 및 접근권한을 수정하시오.
    경로명 : /endgame
    소유자 : root
    소유그룹 : root
    권한 : rwx r-- ---
# mkdir /endgame 디렉터리 생성
# chmod 740 /endgame 권한 변경
  1. 1번에서 생성한 경로에 대하여 avengers 그룹에게 디렉토리에 진입할 수 있는 권한 및 파일을 생성할 수 있는 권한을 설정하시오.
# setfacl -m group:avengers:rwx /endgame/
  1. 1번의 경로 내에 만들어지는 파일에 대해 avengers 그룹의 모든 사용자들이 읽기/쓰기/실행 권한을 가질 수 있도록 기본 ACL을 설정하시오.
    단, 텍스트 파일과 같이 실행권한이 필요하지 않은 파일에 대해서는 실행권한이 적용되지 않도록 설정하시오.
# setfacl -m d:g:avengers:rwX /endgame/
  1. /endgame 경로 내 spoiler.txt 파일을 생성하시오.
    그리고 이 파일을 avengers 그룹의 사용자가 임의로 수정하지 못하게 하기 위하여 ACL mask 설정을 변경하시오.
# setfacl -m m::r /endgame/spoiler.txt
  1. /endgame 경로 내 scenario.txt 파일을 생성하시오.
    그리고 hulk 사용자에 대하여 읽기/쓰기/실행 권한을 모두 제거한 ACL을 설정하시오.
# setfacl -m u:hulk:- /endgame/scenario.txt
  1. /endgame 경로에 대하여 thanos 사용자가 모든 권한을 가질 수 있도록 재귀적으로 ACL 설정을 수정하시오.
    마찬가지로 텍스트 파일과 같이 실행권한이 필요하지 않은 파일에 대해서는 실행권한이 적용되지 않도록 설정하시오.
# setfacl -Rm u:thanos:rwX /endgame/

0개의 댓글