Я пытаюсь передать секретное значение скрипту через переменную среды, но не хочу, чтобы оно регистрировалось sudo
в auth.log
.
В настоящий момент у меня есть файл:
/etc/secret-key
export SECRET_CONFIG_KEY=K1PX7MZ8an8H2mRQR
Этот файл принадлежит пользователю root: root (0400).
Используя cron
и 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