HOME

查看su命令历史记录

在使用Linux系统时,su 命令是一个常用的切换用户权限的方式。为了确保系统的安全性和审计性,有时需要查看 su 命令的历史记录以追踪用户的操作行为。本文将介绍如何查看 su 命令的历史记录。

1. 查看su命令的当前会话

在某些终端中,默认情况下,su 命令执行后的用户交互记录不会被保存到历史记录文件中,因为默认情况下 shell 并没有开启对 su 命令的捕获。不过,在某些发行版如 Ubuntu 中可以通过修改 .bashrc 文件来实现这一点。

首先打开 .bashrc 文件:

nano ~/.bashrc

在文件末尾添加以下内容以捕获 su 命令执行后的用户交互记录:

HISTFILE=$HOME/.su_history
export HISTIGNORE='ls*:exit:*:cd *'
shopt -s histappend
PROMPT_COMMAND="history -a; history -c; history -r"

保存并退出,然后重启终端或执行 source ~/.bashrc 使其生效。这样,每次通过 su 命令切换用户后,交互记录都会被追加到指定的文件中。

要查看这些记录,可以使用以下命令:

cat ~/.su_history

2. 查看整个会话的历史记录

如果你希望查看某个特定会话中的所有历史记录(包括 su 命令),可以通过以下方式查找相关条目:

首先需要确定该会话的时间范围。例如,假设你想要查看从15:00到17:00之间的所有记录:

grep -i '15:00' ~/.bash_history | grep -i '17:00'

这将输出在这段时间内执行的所有命令。你可以通过过滤出 su 命令的具体条目来专注于查看 su 操作。

3. 查看系统级别的历史记录

如果希望获取系统级别更详细的用户切换记录,可能需要查阅 /var/log/auth.log 或者 /var/log/secure 文件(取决于发行版),这些文件通常会包含关于用户切换的审计信息。使用以下命令可以查看这些日志:

sudo grep 'su' /var/log/auth.log

或者

sudo grep 'su' /var/log/secure

4. 定期清理历史记录

为了确保系统性能,建议定期清理不必要的 su 命令历史记录。可以使用以下命令来删除过期的历史条目:

history -c
cat ~/.su_history | grep -v 'su' > ~/.su_history_new && mv ~/.su_history_new ~/.su_history

以上步骤可以帮助你在日常工作中更好地管理和追踪 su 命令的执行情况,从而提高系统的安全性和透明度。