19일차

장민우·2024년 4월 22일

POSIX ACL(Access Control List)


  • POSIX ACL : Unix, Linux 시스템에서 사용되는 특별한 권한 체계로 파일의 소유자, 파일의 소유 그룹 이외의 특정 사용자, 특정 그룹에 권한을 설정할 수 있는 권한 체계

  • POSIX ACL 종류

    • 일반 ACL : 개별 파일 및 디렉터리에 적용되는 POSIX ACL
    • Default ACL : 디렉터리에 설정하는 ACL로 디렉터리 하위 파일 및 디렉터리에 ACL을 상속하기 위한 POSIX ACL

일반 ACL


  • POSIX ACL 권한 확인
    $ getfacl FILE

  • (일반 ACL)POSIX ACL 권한 설정
    $ setfacl -m ACL_ENTRY FILE

    • ACL_ENTRY 작성형식
      소유자 - u::PERMS
      특정 사용자 - u:USER:PERMS
      소유그룹 - g::PERMS
      특정그룹 - g:GROUP:PERMS
      기타 사용자 - o::PERMS

    • 권한
      r : READ
      w : WRITE
      x : EXECUTE
      X : 필요한 경우 선택적으로 실행 권한 부여

  • 하위 디렉터리에도 소유자 권한 일괄적용
    -R 추가

  • 그룹에 권한 일괄적용도 마찬가지.

  • 대문자 X의 경우 하위디렉터리에는 실행권한을 주지 않고 일괄적용.
  • (일반 ACL)POSIX ACL 특정 엔트리 삭제
    $ setfacl -x ACL_ENTRY FILE

  • (일반 ACL)POSIX ACL 전체 삭제
    $ setfacl -b FILE

  • (일반 ACL)POSIX ACL 마스크 값 설정
    $ setfacl -m m::PERMS FILE

Default ACL


  • (Default ACL)POSIX ACL 권한 설정
    $ setfacl -m d:ACL_ENTRY DIRECTORY
    $ setfacl -d -m ACL_ENTRY DIRECTORY

    • ACL_ENTRY 작성형식
      소유자 - d:u::PERMS
      특정 사용자 - d:u:USER:PERMS
      소유그룹 - d:g::PERMS
      특정그룹 - d:g:GROUP:PERMS
      기타 사용자 - d:o::PERMS

    • 권한
      r : READ
      w : WRITE
      x : EXECUTE
      X : 필요한 경우 선택적으로 실행 권한 부여

default 권한이 생성된 디렉터리에서 default 권한을 또 줄 수 있다.

  • (Default ACL) POSIX ACL 마스크 값 설정
    $ setfacl -m d:m::PERMS DIRECTORY

default:user:user01:rwx는 앞으로 생성될 하위 디렉터리의 기본 권한이지 기존 디렉터리의 권한이 아님.

  • (Default ACL) POSIX ACL 엔트리 삭제
    $ setfacl -x d:ACL_ENTRY DIRECTORY
  • (Default ACL) POSIX ACL 전체 삭제
    $ setfacl -k DIRECTORY

  • -n을 붙히면 마스크값이 자동으로 계산되어 적용하는 것을 막는다. (일반 ACL도 마찬가지.)
    -n


작업 스케줄링


  1. 단일성 작업 예약 (at)
  • 작업예약
    $ at [OPTION]... TIMESPEC

  • 작업 목록 확인
    $ at -l
    $ atq

  • 특정 작업 내용 확인
    $ at -c AT_JOB_ID


작업이 저장되는 곳 -> /var/spool/at

  • 특정 작업 삭제
    $ at -r AT_JOB_ID
    $ atrm AT_JOB_ID
  1. 주기적 작업 예약 (cron)
  • Cron 분류
    • User Cron : 사용자의 작업을 에약 하기 위한 cron(모든 사용자가 사용 가능함.)
    • System Cron : 시스템의 작업을 예약 하기 위한 Cron (root 사용자만 사용 가능함)

User Cron


  • User cron 작업 예약
    $ crontab -e

  • User Cron Crontab 구조

MINHOURDAYMONTHWEEKDAYCOMMAND
0~590~231~31~120~6,7-

메타문자설명
*해당 필드가 항상 참, 또는 Don't Care의 의미를 가짐.
-연속되는 범위 ex) 10 - 20
,연속되지 않는 항목 나열 ex) 10,40
/주기를 지정 ex) 매 5분 마다 작업 실행 ex) /5 * * *

예시)

Crontab에서는 날짜를 포맷하여 파일이름을 작성할 때 %앞에 \를 붙혀줘야 한다.

  • User cron 작업 내용 확인
    $ crontab -l

  • User cron 작업 전체 삭제
    $ crontab -r

System Cron


기본 구성 파일 : /etc/crontab
추가 구성 파일 경로 : /etc/cron.d/
$vim /etc/cron.d/파일이름 작성하여 밑에 양식으로 작성. User Cron과 다르게 user-name이 추가됨.

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

0개의 댓글