让 sudoers 使用他们自己的历史文件

Ade*_*sso 2 sudo bashrc

我似乎无法得到一个简单的答案。我想要做的就是让 sudoers 使用他们自己的历史文件,但是如果我在.bashrcfor 中设置历史变量rootwith $user$useris already root,所以它没有效果。

从理论上讲,我想我必须.bash_history在 sudoers 中设置历史文件 ( ),但我似乎找不到一个简单的答案。不可能那么复杂,还是我错了?

当前系统是标准的 CentOS 7

use*_*445 5

将历史文件设置为~root/.bash_history.$SUDO_USER,其中$SUDO_USER自动设置为调用 sudo 的用户。例如,您的根 bashrc 中可以包含以下内容:

HISTFILE="$HOME/.bash_history.$SUDO_USER"
Run Code Online (Sandbox Code Playgroud)

  • @WillemP.Botha:这不是 ubuntu 的东西,而是 bash 的东西:https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html#index-HISTFILE。也许 ubuntu 不使用 bash 作为 root(它使用什么?zsh),但问题是专门关于 bash 的。此外,不要将历史记录设置到您的主目录,因为这既是一个安全问题(root 现在正在编写它不应该写的地方,并且可能被符号链接欺骗)和一个可用性问题(您最终可能会遇到一个 root-拥有的历史文件,您不能自己编写)。 (2认同)