링크 ux 에서 셸 역사 명령 기록 기능

2101 단어
Linux 아래 에 서 는 history 명령 을 사용 하여 사용자 의 모든 과거 기록 을 볼 수 있 으 며, 셸 명령 작업 기록 은 기본적으로 사용자 디 렉 터 리 에 저 장 된. bash 입 니 다.history 파일 중.이 파일 을 통 해 셸 명령 의 실행 역 사 를 조회 할 수 있 고 운영 자 들 이 시스템 감사 와 문제 조 사 를 하 는 데 도움 이 되 며 서버 가 해 킹 을 당 한 후에 도 해 킹 로그 인 서버 의 역사 명령 조작 을 조회 할 수 있다.하지만 해커 는 침입 후 흔적 을 지우 기 위해 삭제 합 니 다. bashhistory 파일, 이 파일 을 합 리 적 으로 백업 해 야 합 니 다.
기본 history 명령 은 사용자 의 과거 기록 만 볼 수 있 지만 모든 사용자 가 명령 을 조작 하 는 시간 을 구분 할 수 없습니다.이 점 은 문제 에 대한 조사 에 상당히 불편 하 다.해결 방법 은/etc/bashrc 파일 에 history 명령 을 추가 하여 모든 셸 명령 의 실행 시간 을 자동 으로 기록 하 는 것 입 니 다.
 
  
HISTFILESIZE=4000
HISTSIZE=4000
HISTTIMEFORMAT='%F %T'
export HISTTIMEFORMAT

HISTFILESIZE 는. bashhistory 파일 에 저 장 된 명령 의 기록 총 수 는 기본 값 이 1000 입 니 다.HISTSIZE 는 history 명령 출력의 기록 총 수 를 정의 합 니 다.HISTTIMEFORMAT 는 날짜 명령 후의 "+"% F% T "와 같은 시간 표시 형식 을 정의 합 니 다.hiSTTIMEFORMAT 는 history 의 시간 변수 로 history 명령 에 값 을 전달 합 니 다.
고급 기교
위 에 있 는 것 은 시간 을 기록 할 수 있 지만 회계 감사 목적 으로 사용 할 수 없어 해커 에 의 해 조작 되 거나 잃 어 버 리 기 쉽다.다음 방법 은 시스템 에 로그 인 한 사용자, IP 주소, 셸 명령 과 상세 한 조작 시간 을 상세 하 게 기록 합 니 다.그리고 이 정 보 를 파일 형식 으로 안전 한 곳 에 저장 하여 시스템 감사 와 고장 검 사 를 제공 합 니 다.
아래 코드 를/etc/profile 파일 에 넣 으 면 상기 기능 을 실현 할 수 있 습 니 다.
 
  
#Record history operation
USER_IP=`who -u am i 2>/dev/null |awk '{print $NF}' |sed -e 's/[()]//g'`
LOGNAME=`who -u am i |awk '{print $1}'`
HISTDIR=/user/share/.history
if [ -z $USER_IP]
then
    USER_IP=`hostname`
fi

if [ ! -d $HISTDIR]
then
    mkdir -p $HISTDIR
    chmod 777 $HISTDIR
fi

if [ ! -d $HISTDIR/${LOGNAME}]
then
    mkdir -p $HISTDIR/${LOGNAME}
    chmod 300 $HISTDIR/${LOGNAME}
fi

export HISTSIZE=4000

DT=`date +"%Y%m%d_%H%M%S"`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null


 참고 자료 •<> 이 책

좋은 웹페이지 즐겨찾기