谢谢你的帮助。
我正在帮助配置一台机器,以使用 /usr/bin/script 函数记录击键。对于每个会话,都会创建一个包含 POSIX 时间的日志文件。$PS1 会更改为反映当前时间和用户名称,这样每当输入某些内容时,我们都知道何时输入了什么。
我的问题是 /usr/bin/script 使用标准 'bash-4.2$' 提示符启动了一个新的 (SHLVL 2) 非登录 shell,并且我找不到正在获取哪个/其配置文件,以便我可以更改 $PS1。/usr/bin/script 由 root 启动。
简单来说,在标准用户启动的会话中,root 拥有的 SHLVL 2 非登录会话会获取什么配置文件?(它似乎不是 /root/.bashrc 或 /root/.profile)
或者 - 我如何强制在每个 shell、交互式、非交互式、非登录等中读取 bash 配置文件?
编辑:用户 .bashrc .bash_profile 和 .profile 都定义了 $PS1。一旦进入嵌套 shell,我就可以获取其中任何一个来更改提示。
答案1
已经有一个解决方案:sudo
。来自man 5 sudoers
:
sudoers 可以将成功和不成功的尝试(以及错误)记录到 syslog(3)、日志文件或两者中。默认情况下,sudoers 将通过 syslog(3) 进行记录,但这可以通过 syslog 和日志文件默认设置进行更改。