Today I Learn - 15

이정빈·2021년 3월 2일
0

클라우드 엔지니어

목록 보기
16/53
post-thumbnail

Redhat 자격증
리눅스
RHCSA(Redhat Certified System Administrator) 기본 리눅스 관리
RHCE(Redhat Certified Engineer) 과거: 리눅스 서비스 관련 내용 → 현재: Ansible

==========================================================

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

1) 사용자의 홈 디렉토리가 생성될 위치의 디렉토리를 생성
mkdir /home/avengers

2) 주어진 조건을 직접 지정하여 사용자 생성
useradd -u 10001 -m -d /home/avengers/ironman -s /bin/bash ironman

3) 사용자 생성 시 기본 홈 디렉토리 경로 위치 설정을 변경
useradd -D -b /home/avengers
-D -b : 사용자 생성 시 기본 홈 베이스 디렉토리 설정 (이 디렉토리 내부에 사용자 이름으로 생성)

4) 변경된 기본 설정을 사용하여 사용자 추가
useradd -u 10002 captain
useradd -u 10003 hulk
useradd -u 10004 thor
useradd -u 10005 spiderman

  1. CentOS 시스템에 그룹을 생성하고, 1번에서 생성한 사용자들의 보조그룹으로 지정하시오.

그룹 이름 : avengers
그룹 GID : 10000

1) 그룹 생성
groupadd -g 10000 avengers

2) 기존 사용자의 보조그룹 정보 변경
usermod -G avengers ironman
usermod -G avengers captain
usermod -G avengers hulk
usermod -G avengers thor
usermod -G avengers spiderman

  1. avengers 그룹의 사용자들은 자료를 공유하기 위한 공간을 필요로 한다. /shield 디렉토리를 생성하고, 해당 디렉토리 내에 생성되는 파일이 avengers 그룹의 소유로 작성되도록 설정하시오.
    그리고 공유 디렉토리 내 파일은 파일을 생성한 사람만이 삭제할 수 있도록 설정하시오.

1) 공유 디렉토리 생성
mkdir /shield

2) 공유 디렉토리 정보 확인
ls -ld /shield
drwxr-xr-x. 2 root root 6 Mar 2 15:39 /shield/

3) 적절한 권한 설정
chmod 770 /shield

4) 소유그룹 변경
chgrp avengers /shield

5) 특수권한 부여 (3단에서 한꺼번에 할 수 도 있음)
chmod g+s /shield
chmod o+t /shield

or

chmod g+s,o+t /shield

or

chmod 3770 /shield

  1. 지금부터 새로운 사용자를 시스템에 추가하여야 한다. 이후 생성되는 사용자를 구분하기 위하여 다음과 같이 기본 설정을 변경하시오.
  • /home/villain 경로에 사용자 홈 디렉토리를 생성시키도록 설정
  • 추가되는 사용자의 만료일자(Expire)를 2021년 12월 31일로 자동설정

1) 홈 디렉토리 베이스 경로 생성
mkdir /home/villain

2) 기본 사용자 홈 디렉토리 베이스 경로를 변경
useradd -D -b /home/villain

3) 기본 계정 만료일자 설정
useradd -D -e 2021-12-31

4) 기본 설정 확인
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- --- ---

1) ironman 사용자로 파일 생성
ironman$ touch /shield/.security.txt

2) 권한 변경
ironman$ chmod 600 /shield/.security.txt

  1. 7번에서 만든 문서는 avengers 그룹의 사용자들도 열어볼 수 없다.
    하지만 만일에 대비해 avengers 그룹의 사용자들이 파일의 내용을 열어볼 수 있도록 하기 위해 다음과 같이 준비하시오.
  • /bin/vim 파일을 /shield 경로로 복사하고, 파일의 이름을 vim2로 변경한다.
  • vim2 파일을 통해 avengers 그룹의 사용자만이 .securiry.txt 파일을 열어볼 수 있도록 설정한다.

1) 파일 복사
ironman$ cp /bin/vim /shiled/vim2

2) 권한설정 변경
ironman$ chmod 4750 /shield/vim2

========================

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

  1. ACL 설정할 디렉토리 생성하고 소유권한 및 접근권한을 수정하시오.
    경로명 : /endgame
    소유자 : root
    소유그룹 : root
    권한 : rwx r-- ---

1) 디렉토리 생성
mkdir /endgame

2) 권한 변경
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/

profile
WAS Engineer, Cloud Engineer(지망)

0개의 댓글