모든 Unix(CentOS, FreeBSD, MacOS X)에서 시스템 계정을 기본 보안 규칙으로 활성화합니다.
MacOS X(Yosemite, 10.10.3)에서 버그가 있는 동작을 발견하여 수정하려고 조사 중입니다.
최근에 종료된 일련의 프로세스에 대한 분석을 실행할 때마다 lastcomm
프로세스가 실제로 종료되었지만 날짜는 다음 예와 같이 미래의 것입니다.
••My_Mac••$lastcomm |더보기 lastcomm -X bob ttys007 0.00초 7월 26일 월요일 14:13 (0:00:03.05) 더보기 - bob ttys007 0.00초 7월 26일 월요일 14:13 (0:00:03.05) stty - bob ttys007 0.00초 7월 26일 월요일 14:13 (0:00:00.05) path_helpe - bob ttys007 0.00초 7월 26일 월요일 14:13 (0:00:00.50) sshd -SF _sshd__ 0.00초 1월 27일 월요일 17:31 (0:00:04.91) procmail -S bob __ 0.00초월 7월 26일 14:11 (0:00:00.09) cron -F root __ 0.00초 6월 1일 월요일 13:10 (0:00:00.33) sendmail -S root __ 0.00초 6월 1일 월요일 13:10 (0:00:00.31) postdrop - 루트 __ 0.00초월 6월 1일 13:10 (0:00:00.09) [...] ••My_Mac••$날짜 2015년 6월 1일 월요일 13:12:07 CEST ••My_Mac••$
첫째, 문제는 잘못된 시간대만큼 간단하지 않습니다.
7월 26일 14시 13분(잘못된 타임스탬프)과 6월 1일 13시 10분(올바른 타임스탬프)은 며칠 차이가 납니다.
date
이것은 오용으로 인한 큰 시간 드리프트도 아닙니다 . 또한 이 서버는 ntp
정책 1 ntp
서버에서 동기화됩니다.
다른 사람들도 이와 같은 부적절한 행동을 본 적이 있나요?
이 문제를 더 잘 연구할 수 있는 방법을 찾았나요?
이것은 알려진 버그인가요?
답변1
ElCapitan(MacOSX 10.11..)에서도 동일한 잘못된 동작이 발견되었습니다. 조사 결과 /var/account/acct 파일의 타임스탬프 데이터가 올바른 것으로 확인되었습니다. lastcomm.c의 소스 코드 컴파일
http://opensource.apple.com/tarballs/shell_cmds/shell_cmds-187.tar.gz
컴파일러 메시지 표시 "경고: 'u_int32_t *'('unsigned int *'라고도 함)를 'const time_t *'('const long *'라고도 함) 유형의 인수에 전달한 호환되지 않는 포인터 유형입니다."
다음 패치는 잘못된 계정 타임스탬프를 수정합니다. 엘 캐피탄에서. Yosemite(10.10..) 및 이전 버전에서 작동할 수 있습니다.
***마지막 연락.c 2016/08/26 19:44:23 1.1 ---lastcomm.c 2016/08/27 00:30:49 1.2 **************** *** 135,138 **** ---135,140 ---- if (!*argv || 요청(argv, &ab)) { + time_t 시간이 길다; + 시간 = ab.ac_btime; t = 확장(ab.ac_utime) + 확장(ab.ac_stime); (잘못된)printf( **************** *** 144,148 **** user_from_uid(ab.ac_uid, 0), UT_LINESIZE, UT_LINESIZE, getdev(ab.ac_tty), ! t / (더블)AHZ, ctime(&ab.ac_btime)); 델타 = 확장(ab.ac_etime) / (더블)AHZ; printf(" (%1.0f:%02.0f:%05.2f)\n", --- 146,150 ---- user_from_uid(ab.ac_uid, 0), UT_LINESIZE, UT_LINESIZE, getdev(ab.ac_tty), ! t / (더블)AHZ, ctime(&timelong)); 델타 = 확장(ab.ac_etime) / (더블)AHZ; printf(" (%1.0f:%02.0f:%05.2f)\n",