320x100

안녕하세요.

오늘은 cron 데몬에 대해서 알아보겠습니다.

 

cron 데몬이란?

 날짜별 데이터 이벤트 관리자인 cron 데몬은 특정 시간과 날짜에 작업이 자동으로 실행되도록 스케줄하는 프로그램입니다.

 inittab 파일은 cron 데몬을 비롯한 AIX의 모든 시동 프로그램을 포함합니다. AIX 시동 시 init 프로세스는 운영체제의 초기화 과정동안 inittab 파일에서 cron 데몬 또는 cron기동시킵니다

 

 

1. 작업을 cron에 제출

다음 중 한가지를 수행하여 작업 또는 이벤트를 cron에 제출할 수 있습니다.

- 한 번 수행을 위한 작업 제출을 위해서는 at batch 기능을 사용합니다

- 정기적으로 스케줄된 간격(한시간 마다, 매일, 매주 등)으로 작업을 실행하기 위해서는 crontab을 사용합니다.

 

기본적으로 cron은 동일한 중요성을 갖는 100개의 이벤트를 동시에 수행할 수 있도록 설정되었습니다.
/usr/adm/cron/queuedefs 파일에서 동시 수행 이벤트의 개수 제한값과 이벤트 유형에 따른 우선순위를 변경할 수 있습니다. cron 데몬은 항상 실행 중이며 이러한 모든 AIX 이벤트를 처리해야 합니다. 

 

2. 작업 스케줄링

스케줄링 되어 있는 정기적인 간격으로, cron/var/spool/cron/crontabs 디렉토리에 있는 crontab 파일을 찾아 읽습니다. 이러한 파일들은 사용자가 제출한 작업을 포함합니다.

예를 들어, /var/spool/cron/crontabs /john 파일은 John 이라는 사용자의 작업을 포함합니다.
cron은 각각의 사용자가 시스템에 로그인해서 명령어를 입력한 것처럼 자동으로 이들 작업을 실행합니다.

 

3. 스케줄링 과정의 흐름

 etc/inittab 파일은 /etc/init에 의해 읽혀지고, inittab파일에 있는 라인은 init에 의해 현재 또는 지정된 실행 레벨에 따라 순차적으로 처리됩니다.

 cron 데몬 /var/spool/cron/crontabs 디렉토리에 들어있는 파일들을 읽습니다. 이 디렉토리에 있는 파일은 개별 사용자 이름을 따라 명명되어 있습니다.

 crontabs 디렉토리에 있는 파일이 변경되면, cron 데몬은 그 파일을 다시 읽어 반드시 그 내용을 알고 있어야 합니다.

 

 

cron 사용법

다음의 파일 중 하나가 존재하지 않을 경우 root 사용자만이 cron을 사용할 수 있습니다.
 - /var/adm/cron/cron.deny - 이 파일에 들어있는 사용자를 제외한 임의의 사용자가 cron을 사용할 수 있습니다.

 - /var/adm/cron/cron.allow - 이 파일에 들어있는 사용자들(root 사용자를 포함)cron을 사용할 수 있습니다.


디폴트로 AIX는 아무 내용이 없는 /var/adm/cron/cron.deny 파일을 생성합니다. 이 파일은 모든 사용자가 cron을 사용할 수 있도록 합니다. 액세스를 제한하려면 cron.deny 파일에 이름을 추가하거나 제거하고 cron.allow 파일을 설정해야 합니다.

 

1. cron 파일의 형식

crontab 파일의 형식에는 6개의 항목이 다음의 순서로 구성되어 있습니다.

시간 날짜 요일 명령어

- 분은 0 ~ 59 사이의 값을 갖습니다.

- 시간은 0 ~ 23 사이의 값을 갖습니다.

- 해당 월의 날짜는 1 ~ 31 사이의 값을 갖습니다.

- 해당 년도의 월은 1 ~ 12 사이의 값을 갖습니다.

- 일은 0 ~ 6 사이의 값을 가집니다. 0=일요일, 1=월요일의 순입니다.

- 명령어는 실행할 명령어 입니다.

 

2. crontab 파일 형식에 대한 형식 규칙

crontab 파일의 형식에 대한 규칙은 다음과 같습니다.
- 공백은 각 항목을 분리시키며 항목 내에는 포함될 수 없습니다.

- 별표(*)는 지정된 항목의 모든 값 또는 가능한 값을 나타냅니다.

- 쉽표(,)는 값의 나열을 나타냅니다.

- 대쉬(-)는 값의 범위를 나타냅니다.

 

3. crontab 형식의 예

이 예에서는 cron이 월요일부터 금요일까지 자정에 백업 프로그램을 실행합니다.

 

- 첫 번째 항목은 해당되는 시의 0분을 명시합니다.

- 두 번쨰 항목은 해당 날짜의 시간을 명시합니다. 여기에서 시간은 자정입니다. 공박이 항목의 구분자 역할을 합니다.

- 세 번쨰 항목은 해당 월의 모든 날짜를 명시합니다. 별표(*)는 모든 값 또는 가능한 값을 나타냅니다.

- 네 번째 항목은 해당 연도의 모든 달을 명시합니다.

- 다섯 번째 항목은 월요일부터 금요일까지를 명시합니다. 범위의 값을 위해서는 대쉬(-)를 사용합니다.

- 여섯 번째 항목은 실행할 명령어를 명시합니다.

 

이 예에서는 cron이 월요일부터 금요일까지 오전 8시와 오후 5시 사이에 매 15분마다 /home/team01/myscript 파일을 실행합니다.

- 매 15분을 명시합니다. 공백이 항목의 구분자 역할을 합니다.

- 오전 8시와 오후 5시 사이를 명시합니다.

- 해당 월의 모든 날짜를 명시합니다.

- 해당 연도의 모든 달을 명시합니다.

- 월요일부터 금요일까지를 명시합니다.

- 실행할 스크립트 파일 이름을 명시합니다.

 

4. 자주 사용되는 명령어

crontab 파일을 관리하는 데 가장 자주 사용되는 명령은 다음과 같습니다.
- crontab –l : 현재의 crontab 파일의 내용을 보여줍니다.

- crontab –e : 현재의 crontab 파일을 편집합니다.

- crontab –r : crontab 디렉토리에 있는 사용자의 crontab 파일을 삭제합니다.

- crontab file : cron spool 디렉토리에 새로운 파일을 제출합니다.

 

 

감사합니다.

오늘도 즐거운 하루되세요 ^^

 

 

 

 

 

 

 

 

 

 

반응형
320x100

안녕하세요.

고객사 환경에 따라 보안취약점을 적용해야되는 경우가 있습니다.

불필요한 기본계정에 대해서 관리자 그룹에서 제거하거나 삭제해야되는 경우가 있습니다.

OS를 신규설치한 후의 계정과 그룹정보는 다음과 같습니다.

 # oslevel -s
 7100-04-04-1717
 # cat /etc/passwd
 root:!:0:0::/:/usr/bin/ksh
 daemon:!:1:1::/etc:
 bin:!:2:2::/bin:
 sys:!:3:3::/usr/sys:
 adm:!:4:4::/var/adm:
 uucp:!:5:5::/usr/lib/uucp:
 guest:!:100:100::/home/guest:
 nobody:!:4294967294:4294967294::/:
 lpd:!:9:4294967294::/:
 lp:*:11:11::/var/spool/lp:/bin/false
 invscout:*:6:12::/var/adm/invscout:/usr/bin/ksh
 snapp:*:200:13:snapp login user:/usr/sbin/snapp:/usr/sbin/snappd
 ipsec:*:201:1::/etc/ipsec:/usr/bin/ksh
 nuucp:*:7:5:uucp login user:/var/spool/uucppublic:/usr/sbin/uucp/uucico
 pconsole:*:8:0::/var/adm/pconsole:/usr/bin/ksh
 srvproxy:*:202:0:Service Proxy Daemon:/home/srvproxy:/usr/bin/ksh
 esaadmin:*:10:0::/var/esa:/usr/bin/ksh
 # cat /etc/group
 system:!:0:root,pconsole,srvproxy,esaadmin
 staff:!:1:ipsec,srvproxy,esaadmin
 bin:!:2:root,bin
 sys:!:3:root,bin,sys
 adm:!:4:bin,adm
 uucp:!:5:uucp,nuucp
 mail:!:6:
 security:!:7:root
 cron:!:8:root
 printq:!:9:lp
 audit:!:10:root
 ecs:!:28:
 nobody:!:4294967294:nobody,lpd
 usr:!:100:guest
 perf:!:20:
 shutdown:!:21:
 lp:!:11:root,lp
 invscout:!:12:invscout
 snapp:!:13:snapp
 ipsec:!:200:
 pconsole:!:14:pconsole

 

OS 기본계정의 용도와 삭제가 가능한 계정 및 그룹은 무엇인지 알아보겠습니다.

 

AIX 7.1에서 삭제 가능한 user/group은 아래와 같습니다.
Removing unnecessary default user accounts
https://www.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.security/remove_default_usr_accts.htm


***
기본적으로 AIX defaut user/group은 그대로 놔두시는 것이 기본 권고사항입니다. ***

, 아래 내용 참고하셔서 사용하지 않는 user/group은 삭제 가능하나,
향후 AIX TL/SP upgrade시에 문제가 발생하는 경우가 있으므로 그때는 임시로 다시 동일명의 user/group을 생성해 주셔야 합니다.
(smitty user
또는 mkuser command )

 

uucp/nuucp
UUCP(UNIX to UNIX Copy)
를 행하기 위한 user, 현재는 특별한 이유가 없는 한 사용되지 않고 있어 삭제 가능하나, OS update 시 재생성 필요
uucp 유저 재생성 방법은 아래와 같습니다. (uid=5, gid=5)

#mkuser uucp
#mkgroup uucp
.
and make sure the user uucp's right as below in
/etc/passwd
uucp:!:5:5::/usr/lib/uucp:
.
and uucp group in
/etc/group
uucp:!:5:uucp,nuucp

guest
사용할 일이 없다면 삭제 무관 (System에 계정을 가지고 있지 않은 user들이 사용하는 계정)

snapp
PDA
에서 AIX시스템 접속해서(serial cable) passwd변경, 간단한 network환경 setup, paging space setting정도 할 수 있도록 하는 daemon
사용하지 않는 경우 삭제 가능

lpd
owner
가 되고 있는 file은 존재하지 않습니다만, 문서 print 시의 유사 user로서 사용되어 있을 가능성이 있음
인쇄의 필요성이 없다고 한다면, 삭제해도 무관합니다.

ipsec
IPsec Security technology
관련. 안쓰시면 삭제 가능

pconsole
system director
에서 사용하며 안쓰신다면 삭제해도 무방. OS update 시 재생성 필요
pconsole
uid=8, gid=14 이어야 합니다.
The user pconsole must exist on your system with id=8, and the lsgroup pconsole must have id=14 if it has any other ID the installation will not work.
 
Attribute should be -
# lsgroup pconsole
pconsole id=14 admin=true users=pconsole registry=files
.
# lsuser pconsole
pconsole id=8 pgrp=system

재생성하는 방법은 아래와 같습니다.
It seems you don't have the user pconsole, please run the following command:
 
# mkuser id='8' pconsole
# lsuser pconsole
 
If the id=8 then proceed to update your filesets, if the mkuser command fails then please send me the following output:
 
# lsuser ALL

esaadmin
esa(Electronic Service Agent)
는 시스템 하드웨어의 문제등을 모니터링하고 있다가,
문제 발생시 IBM측에 원격으로 정보를 알려주는 역할을 하며 이 때 사용되는 user esaadmin.
대부분의 경우에는 서버에 직접적으로 esa를 구성하기보다는 hmc에 구성하므로, 서버구성이 아니면 삭제하셔도 무방합니다.

***
절대 삭제해서는 안되는 User ***
root, daemon, bin, sys, adm, invscout, nobody

이러한 user는 사용되는 빈도가 높고, 이것들이 owner로 되어 있는 파일도 다수 존재하기 때문에 삭제하면 안됩니다.
덧붙여서, 이러한 user owner가 되고있는 파일의 owner를 강제적으로 변경할 경우, IBM의 보증을 받기 어렵기 때문에 주의하시기 바랍니다.

root
시스템의 모든 부분에 무제한으로 액세스 할 수 있습니다. user, 대부분의 시스템 관리 작업을 위해서 사용됩니다.
무제한의 액세스는 user root가 아니고, 0(제로) UID 에 근거하는 것입니다. 시스템은 0 UID 를 가지는 user는 모두 root라고 인식합니다.

daemon
시스템 서버프로세스 실행

bin
일부 시스템명령어의 실행

sys
일부 시스템명령어의 실행

adm
일부의 Account 관리용의 로그인

invscout
inventory scout
에 필요하며, System Microcode VPD 에 관계함

nobody
주로 NFS에서 remote printing, applilcation root user처럼 temporary permission을 줌. 특정daemon(fingerd)등도 nobody로 구동
Internet Connection Server
와 같은 Web Service 에도 사용됨.

 

오늘도 좋은하루 보내세요 ^^

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts