Как sudo определяет, какие переменные среды следует сохранять, а какие нет и проверять?

Как sudo определяет, какие переменные среды следует сохранять, а какие нет и проверять?

ОС: CentOS 7.7 sudo: sudo-1.8.23-4.el7_7.1.x86_64

Запуск "sudo -V" от имени root дает вам, помимо прочего, списки переменных среды, которые сохраняются, не сохраняются и проверяются (предположительно) во время изменений пользователя. Например, переключение с пользователя joe.smith на dave.jones или root.

У меня вопрос: как формируются эти списки?

Я предполагаю, что часть этого происходит из набора значений по умолчанию в файле sudoers, но в списке "sudo -V" гораздо больше переменных среды, чем указано в списке значений по умолчанию в моем файле sudoers.

$ sudo sudo -V
...
Environment variables to preserve:
        STONAVM_HOME
        HOME
        EDITOR
        XAUTHORIZATION
        XAUTHORITY
        PS2
        PS1
        PATH
        LS_COLORS
        KRB5CCNAME
        HOSTNAME
        DISPLAY
        COLORS


$ sudo grep Default /etc/sudoers
Defaults umask=0027
Defaults env_keep+="EDITOR HOME STONAVM_HOME"
Defaults!FULL_PROMISC noexec

Меня сводит с ума KRB5CCNAME, несмотря на то, что я обнаружил следующую ошибку: https://bugzilla.redhat.com/show_bug.cgi?id=1324486

Я даже не думаю, что это влияет на нас, потому что мы не используем sssd для sudoers. Этот хост не имеет записи sudoers в /etc/nsswitch.conf.

Буду рад опубликовать любые другие конфигурации, необходимые для отслеживания этого.

Связанный контент