Bashrc
如何格式化歷史文件以包含使用者名?
tail -2 /root/.bashrc export HISTTIMEFORMAT="%d/%m/%y %T " export PROMPT_COMMAND='builtin history 1 >> /var/log/root.log'
有了這個,所有的命令都可以被記錄下來(即使是那些在“ sudo su - ”中的命令)。
我的問題:如何將使用者名資訊放在歷史文件中,這樣不僅會記錄時間,而且會記錄“sudo su -”使用者名的原始使用者也在歷史文件中(或從它的外殼處理 PID ,或任何唯一標識符)?
當您以or或( 提供的登錄 shell 為) or啟動
root
bash
shell時,原始使用者可用作.sudo -i``sudo -s``sudo su``root``bash``sudo bash``$SUDO_USER
但是當啟動時
sudo su -
,環境被清除su
,所以你必須找到另一種方法來找到原始使用者。一種方法,如果你有
pstree
命令可能是:original_user=${SUDO_USER:-$(pstree -Alsu "$$" | sed -n "s/.*(\([^)]*\)).*($USER)[^(]*$/\1/p")} export HISTTIMEFORMAT="<%F %T> (${original_user:-$USER}) [$$] " export PROMPT_COMMAND='builtin history 1 >> /var/log/root.log'
解析其輸出的想法
pstree -Alsu "$$"
如下:init---xterm(user)---zsh---sudo(root)---su---bash---pstree
要提取
user
.