Cron

防止在 sudo 中記錄環境變數

  • August 19, 2019

我正在嘗試通過環境變數為腳本提供一個秘密值,但沒有將其登錄sudoauth.log.

目前我有文件:

/etc/secret-key
export SECRET_CONFIG_KEY=K1PX7MZ8an8H2mRQR

該文件歸 root:root (0400) 所有。

使用cronand sudo,我可以在使用者下執行腳本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帳戶無法編輯其任何腳本,該帳戶僅用於執行它們。

您可能應該使用su而不是sudo為此。

考慮類似的事情:

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

引用自:https://serverfault.com/questions/979868