菜单

Administrator
发布于 2024-07-24 / 40 阅读
0

审计linux命令行

vim /etc/profile
export HISTTIMEFORMAT="%F %T "
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) $(pwd) $SSH_CLIENT $(history 1 | sed "s/^[ ]*[0-9]\+\[ ]*//" ) [$RETRN_VAL]"'
readonly PROMPT_COMMAND
  1. export PROMPT_COMMAND='...':

    • PROMPT_COMMAND 变量导出,使其在当前 shell 及其子进程中可用。
  2. RETRN_VAL=$?:

    • 获取上一个命令的返回值,并存储在 RETRN_VAL 变量中。$? 是一个特殊变量,表示上一个命令的退出状态。
  3. logger -p local6.debug "$(whoami) ...":

    • 使用 logger 命令将信息记录到系统日志中。-p local6.debug 指定日志级别和设施。
    • $(whoami) 获取当前用户的用户名。
  4. $(history 1 | sed "s/^[ ]*[0-9]\+\[ ]*//"):

    • history 1 获取最近的一条命令。
    • sed "s/^[ ]*[0-9]\+\[ ]*//" 用于删除命令前的历史编号和空格,只保留命令本身。
  5. [$RETRN_VAL]:

    • 在日志信息的末尾附加上一个命令的返回值。
vim /etc/rsyslog.d/history.conf
local6.debug /var/log/users-command.log