Запретить регистрацию переменных окружения в sudo

Я пытаюсь передать секретное значение скрипту через переменную среды, но не хочу, чтобы оно регистрировалось 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 аккаунт не может редактировать ни один из своих скриптов, учетная запись используется только для их запуска.

0
задан 19 August 2019 в 20:48
1 ответ

Вероятно, для этого вы должны использовать su, а не sudo.

Рассмотрим что-то вроде:

su www-data -w SECRET_CONFIG_KEY -c /path/to/script
2
ответ дан 4 December 2019 в 13:19

Теги

Похожие вопросы