Linux 利用PROMPT_COMMAND 實現審計功能

     這個系統審計,記錄什麼用戶,在什麼時間,做了什麼操作。 然後將查到的信息記錄到一個文件裏。

一. 配置

1. 在/etc/profile 文件的最後,添加如下2行代碼:

 

  1. export HISTORY_FILE=/var/log/`date ‘+%Y%m’`.log  
  2. export PROMPT_COMMAND=’{ date “+%Y-%m-%d %T ##### $(who am i |awk “{print \$1\” \”\$2\” \”\$5}”)  #### $(history 1 | { read x cmd; echo “$cmd”; })”; } >> $HISTORY_FILE’  

添加完成保存退出。這樣任何操作命令都會在/var/log/日期.log中看到。還可以自己定義目錄或者文件。讓別人找不到 只允許自己看。只需要修改

  • export HISTORY_FILE=/var/log/`date ‘+%Y%m’`.log  這個記錄就可

/etc/profile: 此文件爲系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.並從/etc/profile.d目錄的配置文件中搜集shell的設置.

  1. [root@node1 ~]#. /etc/profile 或者   [root@node1 ~]#source /etc/profile

 使更改生效,如果沒有報錯說明成功了。

驗證日誌裏面是否有數據

 

  1. [root@node1 ~]# more /var/log/201107.log 
  2. 2011-07-21 17:29:08 ##### root pts/2 (192.168.23.250)  #### . /etc/profile 

可以看到裏面已經有數據。

還可以使用

 

  1. PROMPT_COMMAND=’{ date “+%Y-%m-%d %T ##### USER:$USER IP:$SSH_CLIENT PS:$SSH_TTY #### $(history 1 | { read x cmd; echo “$cmd”; })”; } >>$HISTORY_FILE’ 

命令不一樣但是結果是一樣的。

 

文章補充:如果是多個用戶登錄需要更改日誌的權限,以便切換到非root用戶無權限寫入。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章