如何在使用 sudo 时防止在 journalctl 中记录敏感的 CLI 参数?

use*_*574 5 command-line security logs sudo

在 Ubuntu 16.04 中,日志会记录每个 sudo 命令,其中一些包含我不想留在日志中的敏感参数(例如,明文密码)。我对如何防止这种情况有一些想法,但我想知道是否有任何正式的方法,理想情况下应该足够简单和通用。

例如,像下面这样的命令。

$ sudo set_account.sh --password SbdLb9W --pin-number 1234 --other-options
Run Code Online (Sandbox Code Playgroud)

日志日志可能会呈现这样。

sudo set_account.sh --password ... --pin-number ... --other-options
Run Code Online (Sandbox Code Playgroud)

谢谢。

感谢大家非常有用的答案和评论。我想我会继续使用环境变量加包装器脚本的方法。

Nei*_*gan 1

不要将密码放在命令选项中。

正确的方法是使用环境变量,例如

$ MY_PASSWORD=s3cr3t ./mycommand
Run Code Online (Sandbox Code Playgroud)

但是,mycommand需要知道在环境中查找密码

密码将出现在您的 shell 历史记录中,但对其他用户不可见:https ://security.stackexchange.com/questions/138071/are-environment-variables-entered-directly-before-a-command-visible-给-其他-

如果您不希望它出现在 shell 历史记录中,请将上述命令放入脚本中并运行该脚本

如果mycommand调用其他进程,注意不要传递MY_PASSWORD给子进程