[TIL 09. 리눅스 관리1(2) 고급권한 관리와 작업 예약]

Juhee Fred Lee·2023년 10월 23일
0

TIL

목록 보기
11/24

사용자 권한 관리

  1. 사용자 전환
    1. su 명령어 (Switch User)
      1. 지정된 사용자로 전환할 때 사용하는 명령어.
      2. ‘-’ 옵션값 적용 시 로그인 할 사용자의 환경설정 정보를 가져와서 로그인 함.
    2. sudo 명령어 (Substitute User DO/ Super User DO)
      1. sudo 권한을 부여받은 사용자에 한하여 사용할 수 있다.
      2. 권한을 부여받는 사용자라는 의미는 wheel 그룹에 포함되어 있는 사용자라는 의미.
      3. sudo를 사용할 때 root의 비밀번호가 아니라 사용자의 비밀번호를 입력하는 이유.
        1. root의 비밀번호는 보안상의 이유로 외부에 유출되지 않는다.
        2. 사용자의 비밀번호를 입력함으로써 wheel 그룹에서 어떤 사용자가 명령어를 사용했는지 확인할 수 있다.

고급권한 관리

  1. 확장권한 (SETUID/ SETGID/STICK BIT)
    1. 개념: 소유권이 없는 사용자도 파일에 대한 권한을 일시적으로 행사해야할 때 파일에 대한 사용권을 권한이 없는 사용자에게 일시적으로 빌려주는 행위.
    2. SETUID가 설정된 파일(소유자의 실행권한 x 대신에 s): 파일의 실행하는 사용자가 주체가 되는 것이 아니라, 파일을 소유하고 있는 사용자의 권한으로 프로세스를 실행하는 것
    3. SETUID 예시
      1. 일반 유저가 비밀번호를 변경할 경우

      2. /bin/passwd 파일이 setuid 비트가 설정되어있는지 확인 후 파일 실행 시 파일의 소유자 권한으로 전환

        권한에서 rwx가 아닌 rws가 있다. ⇒ s는 setuid 비트가 설정여부가 표시된다. 권한에서 rwx가 아닌 rws가 있다. ⇒ s는 setuid 비트가 설정여부가 표시된다.

      3. /user/bin/passwd

      4. /etc/shadow 파일을 수정

    4. SETGID가 설정된 파일(그룹의 실행권한 x 대신에 s) 해당 디렉토리 하위에서도 특정 그룹의 권한을 가지게 해주게 설정하는 것. ⇒ 권한을 상속한다는 개념으로 이해하면 된다.
      1. 파일이나 디렉토리는 파일을 실행하는 사람의 권한으로 실행된다.
      2. SETGID의 경우 소유자의 권한으로 실행하게 해준다. (ex: 공유폴더)
    5. SETGUI 예시
      1. 특정 디렉토리에서 그룹을 설정해주고 하위 디렉토리에서 파일을 만들 시 그룹 내 유저간에 입력권한이 없는 것을 확인할 수 있다. (그룹 내 유저임에도 Other 권한이 적용됨.)
      2. 이 상황에서 특정 디렉토리에 SETGID를 설정할 경우 파일을 생성할 때 부터 그룹 권한을 특정 그룹으로 설정해준다. ⇒ 권한이 상속됨을 알 수 있다.
      3. 설정 이후 생성된 파일들의 경우 그룹 내 유저 간 권한이 공유됨을 알 수 있다.
      4. 실행 권한이 없는 상태에서 SETGID를 할 경우 소문자가 아닌 대문자 “S”로 표기된다.
    6. STICKY BIT (OTHER의 실행권한 x 대신에 t)
      1. 디렉토리의 기타 사용자 권한에 모든 권한이 설정되어 있을 경우 해당 파일이나 디렉토리를 지울 수 있다. 이 경우 STICK BIT를 설정할 경우 임의로 삭제를 할 수 없다.

        OTHER 권한에서 실행권한 X 대신에 t로 표기되어있다. OTHER 권한에서 실행권한 X 대신에 t로 표기되어있다.

      2. 멀티유저의 특성을 가진 리눅스 환경에서 함부로 파일을 삭제하지 못하도록 해당 확장권한을 설정한다.

        0009.jpg

  1. 접근 제어 리스트(Access Control List)
    1. 권한을 세부적으로 설정할때 쓰는 리스트.
    2. 파일을 소유한 사용자, 사용자그룹을 제외한 특정 사용자와 그룹에게 별도로 권한을 부여 할 때 사용합니다.
    3. 파일 권한 마지막에 ‘+’기호가 붙는 것으로 ACL 적용 유무를 확인할 수 있다.
    4. 접근 제어 리스트 설정: setfacl -m u:(유저이름):rwx (파일명)
    5. 접근 제어 리스트 조회: getfacl (파일명)

작업 스케줄링

  1. 스케줄링에서는 크게 “누가 작업하는가?(사용자/시스템)”“어떤 주기로 작업하는가?(단발성/반복성)”를 중점적으로 고려해야한다.

  2. 단일성 작업 예약 (atd)

    1. 명령어: at [option] time-spect

    2. 한번 사용하고 나면 해당 작업은 제거된다.

    3. 반복되는 안되는 작업에 사용된다. (예시: 서버 한번 내리고 다시 올리는 작업 ⇒ 반복되면 큰일나겠지요?)

    4. 저장위치: /var/spool 하위에 저장된다.

    5. 패키지를 설치하고 사용해야한다. (rpm -qa | grep ‘’)

      1. yum provides (명령어) => 명령어를 알 때 검색하는 방법
    6. systemctl status atd ⇒ systemctl start atd⇒ systemctl status atd ⇒ 해당 프로세스 실행

    7. 사용방법

      1. at [option] time-spec
      2. (작업 내용) + ctrd + d
      3. atq로 작업 내역 확인
  3. 주기적인 작업 예약 (crontab/crond에서 작업이 실행된다.)

    1. crontab -e + 명령어
      1. 분 → 시 → 일 → 월 → 요일 → 명령어 순으로 작성된다.
        1. 예시 (매일 매시간 45분): 45 * * * * touch clock.txt
    2. /var/spool/cron + cat (파일명) & crontab -l 으로 작업을 확인할 수 있다.
    3. rm /var/spool/cron + (삭제할 파일명) & crontab -r 으로 작업을 삭제할 수 있다.
profile
공릉동에 살며 백엔드를 공부하는 감자입니다.

0개의 댓글