Cron
防止在 sudo 中記錄環境變數
我正在嘗試通過環境變數為腳本提供一個秘密值,但沒有將其登錄
sudo
到auth.log
.目前我有文件:
/etc/secret-key export SECRET_CONFIG_KEY=K1PX7MZ8an8H2mRQR
該文件歸 root:root (0400) 所有。
使用
cron
andsudo
,我可以在使用者下執行腳本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