crontab을 통한 auditd 스크립트 - 잘못된 날짜

crontab을 통한 auditd 스크립트 - 잘못된 날짜

중앙 감사 서버를 만들고 로컬 서버에서 모든 감사 로그를 보냅니다.

특정 노드의 접근을 보고하고 싶습니다.

그래서 다음과 같은 줄을 사용하여 간단한 보고 스크립트를 만들었습니다. ausearch -n XXXXXX |aureport -i

다음과 같이 배열됩니다: 0 */4 * * * root /home/XXXX/report.sh

권한은 다음과 같습니다: -rwxr-xr-x 1 root root 743 Feb 10 11:27 report.sh

셸에서 스크립트를 실행하면 모든 것이 괜찮아 보이고 로그 출력이 포함된 이메일을 받습니다.

요약 보고서
======================
로그의 시간 범위: **2017년 2월 22일 23:24:09.603 - 2017년 2월 24일 10:16:26.313**
보고 시간 선택: **2017년 2월 22일 23:24:09 - 2017년 2월 24일 10:16:26.313**
구성 변경 횟수: 0
계정, 그룹 또는 역할 변경: 0
로그인 횟수: 22
실패한 로그인 수: 2
인증 수: 54
인증 실패 횟수: 0
사용자 수: 5
터미널 수: 4
호스트 이름 수: 4
실행 파일 수: 14
명령 수: 21
파일 수: 101
AVC 수량: 0
MAC 이벤트 수: 0
실패한 시스템 호출 수: 20
비정상 이벤트 수: 0
비정상 이벤트 응답 횟수: 0
암호화폐 이벤트 수: 256
무결성 이벤트 수: 0
가상 이벤트 수: 0
키 수: 1
프로세스 ID 수: 25087
이벤트 수: 96620

하지만 문제는 crontab을 통해 예약할 때입니다. 그런 다음 아무런 이벤트 없이 잘못된 날짜와 시간을 얻습니다. 다음과 같습니다.

요약 보고서
======================
로그의 시간 범위: **1970년 1월 1일 01:00:00.000 - 1970년 1월 1일 01:00:00.000**
보고 시간 선택: **1970년 1월 1일 01:00:00 - 1970년 1월 1일 01:00:00.000**
구성 변경 횟수: 0
계정, 그룹 또는 역할 변경: **0**
로그인 횟수: **0**
로그인 실패 횟수: **0**
인증 수: **0**
인증 실패 횟수: **0**
사용자 수: **0**
터미널 수: **0**
호스트 이름 수: **0**
실행 파일 수: **0**
명령 수: **0**
파일 수: **0**
AVC 수량: **0**
MAC 이벤트 수: **0**
실패한 시스템 호출 횟수: **0**
비정상 이벤트 수: **0**
비정상 이벤트 응답 횟수: **0**
암호화 이벤트 수: **0**
무결성 이벤트 수: **0**

내 Linux 버전: Linux 버전 3.10.0-514.2.2.el7.x86_64([이메일 보호됨]) (gcc 버전 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Dec 6 23:06:41 UTC 2016

왜 이런 일이 발생하는지 아시나요?

답변1

cron은 제한된 환경에서 실행되므로 이를 확장해야 합니다. PATH 변수를 현재 환경과 동일한 값으로 설정합니다. 크론탭 예:

PATH=/home/xxxxx/bin:/usr/local/bin:/usr/bin:/bin
SHELL=/bin/zsh
MAILTO=xxxxx
#
# minute  0-59
# hour    0-23
# dom     1-31
# mon     1-12 (or names)
# dow     0-7  (0 or 7 is Sun, or use names)
#
# mm hh dom mon dow command
*    *  *   *   *   set > /tmp/cronenv

set > /tmp/myenv귀하의 환경을 crons 환경과 비교하거나 사용량을 추적하는 데 유용합니다 ltrace -egetenv.

관련 정보