[Linux]-How to Log Bash Commands on Ubuntu

[Linux]-How to Log Bash Commands

OS: Ubuntu 16.04 LTS

如果要記錄每個使用者登入後到底下了那些指令的話,就要多設定Log的格式來記錄

先到預設的Bash指令做調整

vim /etc/bash.bashrc

然後在最下面多增加這一行指令

PROMPT_COMMAND='history -a; { command=$(history 1 | { read x y; echo $y; }); [ "$SSH_CLIENT" ] || SSH_CLIENT=$SUDO_USER; [ "$SSH_CLIENT" ] || SSH_CLIENT='sudo'; logger -p local0.notice -t history -i "date=$(date +%Y\/%m\/%d\-%T), user=$USER, from=$SSH_CLIENT, pwd=$PWD, command=$command"; }'

注意local0.notice是可以根據你自訂的系統Log來調整的,總共有0~6可以使用,

然後到rsyslog的預設設定檔中做調整

vim /etc/rsyslog.d/50-default.conf

把想要的log檔案打開來

並且在最下面一行加入以下的設定

local0.*                        /var/log/command.log

上面的指令是local0~6的哪一個,這邊就要改成一模一樣的local0~6.*,

設定完後重啟log服務

systemctl restart rsyslog

最後就是在/var/log底下建立你剛剛設定好的log名字的檔案,記得權限要調整

 

touch /var/log/command.log

chown syslog:adm /var/log/command.log

如果完全沒有紀錄寫入的話,可以整台Server重啟看看,以上

 

Add a Comment