防止在 sudo 中记录环境变量

防止在 sudo 中记录环境变量

我正在尝试通过环境变量向脚本提供一个秘密值,但没有将其记录sudo下来auth.log

目前我有这个文件:

/etc/secret-key
export SECRET_CONFIG_KEY=K1PX7MZ8an8H2mRQR

该文件归 root:root (0400) 所有。

使用cronsudo,我可以在用户下运行脚本www-data,并提供该值。

5 * * * * root . /etc/secret-key; sudo -u www-data --preserve-env=SECRET_CONFIG_KEY /path/to/script

但该auth.log文件包含如下行:

Aug 19 18:30:01 server sudo: root : TTY=unknown ; PWD=/root ; USER=www-data ; ENV=SECRET_CONFIG_KEY=K1PX7MZ8an8H2mRQR ; COMMAND=/path/to/script

小组中的任何人都可以读取它adm,并且每天通过 LogWatch 通过电子邮件发送给我。


我很乐意考虑其他方法。

主要功能是使用帐户将此秘密值提供给脚本,www-data其中该帐户仅在需要时才被授予对该值的访问权限(该帐户不应对密钥文件具有读取权限)。

附带说明一下,该www-data帐户不能编辑其任何脚本,该帐户仅用于运行它们。

答案1

您可能应该使用su而不是sudo这样做。

考虑一下类似的事情:

su www-data -w SECRET_CONFIG_KEY -c /path/to/script

相关内容