IP 에 로그 인하 여 Linux 모든 사용자 로그 인 을 통 해 작 동 하 는 로 그 를 기록 합 니 다.

4778 단어 linuxshell
리 눅 스 사용자 의 조작 기록 은 일반적으로 명령 history 를 통 해 역사 기록 을 조회 하지만, 오 작 동 으로 중요 한 데 이 터 를 삭제 한 경우 history 명령 은 아무런 작용 도 하지 않 습 니 다.그렇다면 역사 조작 기록 을 남 겨 두 려 면 어떻게 해 야 할 까?사실 우 리 는 로그 인 IP 주 소 를 통 해 모든 사용자 로그 인 이 조작 한 역사 조작 을 기록 할 수 있 습 니 다!
구체 적 인 작업 은/etc/profile. d/에 프로필 의 끝 에 다음 스 크 립 트 코드 를 추가 하 는 것 입 니 다.
#sudo vi /etc/profile.d/user_all_history.sh

붙 여 넣 기:
# History
USER=`whoami`
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`

if [ "$USER_IP" = "" ]; then
USER_IP=`hostname`
fi

if [ ! -d /usr/local/history ]; then
mkdir /usr/local/history
chmod 777 /usr/local/history
fi

if [ ! -d /usr/local/history/${LOGNAME} ]; then
mkdir /usr/local/history/${LOGNAME}
chmod 300 /usr/local/history/${LOGNAME}
fi

export HISTSIZE=10000
DT=`date +"%Y-%m-%d_%H:%M:%S"`

export HISTFILE="/usr/local/history/${LOGNAME}/${USER}@${USER_IP}_history.$DT"
chmod 600 /usr/local/history/${LOGNAME}/*history* 2>/dev/null
[root@server ~]# source /etc/profile.d/user_all_history.sh
[root@server ~]# logout

시스템 을 종료 하고 다시 로그 인 해 야 합 니 다./usr/local/history/디 렉 터 리 에 기록 할 수 있 습 니 다.
[root@server ~]# ll /usr/local/history/root/

    12

-rw------- 1 root root 77 10  11 09:09 root@192.168.1.23_history.2012-10-11_09:09:12 
-rw------- 1 root root 529 10  11 09:11 root@192.168.1.23_history.2012-10-11_09:09:16 
-rw------- 1 root root 187 10  11 09:12 root@192.168.1.23_history.2012-10-11_09:11:26 

루트 만 볼 수 있다 면:
#sudo chmod 400 /etc/profile.d/user_all_history.sh

좋은 웹페이지 즐겨찾기