[Linux]-How to Log Bash Commands on Ubuntu
Posted On 2017-10-01
[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重啟看看,以上