`/ etc / sudoers` – указать` env_keep` только для одной команды?

Есть ли способ указать, что sudo должен сохранять определенные переменные среды только для определенных команд? Для некоторых целей я бы хотел, чтобы мой $HOME env. переменная сохраняется, когда я запускаю определенные команды. Для других целей и других команд я хочу, чтобы он был сброшен. Это можно сделать с помощью /etc/sudoers ?

Редактировать:

Спасибо за ответы. Интересно, могу ли я задать вопрос о последующей деятельности, а именно: «Почему же это не работает?»

В примере, который я пытаюсь получить, я хочу, чтобы sudo nano читал мой $HOME/.nanorc . Если я использую это:

 Defaults:simon env_keep=HOME 

он работает отлично. Если я использую это:

 Defaults!/bin/nano env_keep=HOME 

или это:

 Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano Defaults!NANO env_keep=HOME 

он вообще не работает. Любые предложения относительно того, почему? (Я на тестировании Debian, кстати.)

(Примечание: я не думаю, что это nano specific, btw – я могу воспроизвести поведение с помощью однострочного скрипта bash, который просто echo файл $HOME ).

Чтобы переопределить env_keep только для /path/to/command (при вызове через любое правило, любым пользователем) и для пользователя joe (независимо от того, какую команду он запускает):

 Defaults!/path/to/command env_keep=HOME Defaults:joe env_keep=HOME 

Вы можете использовать -= или += для удаления или добавления записи в список env_keep .

 Cmnd_Alias PBUILDER = /usr/sbin/pbuilder,/usr/sbin/cowbuilder Defaults!PBUILDER env_keep+=HOME 

Эти строки взяты из моего собственного /etc/sudoers чтобы исправить проблему, которую pbuilder ищет в $HOME для своего пользовательского файла конфигурации, но должен запускаться как root (перемещение в /root kinda приводит к поражению цели как для системы, так и для пользовательской конфигурации файл).

человек sudoers:

  env_reset If set, sudo will reset the environment to only contain the LOGNAME, SHELL, USER, USERNAME and the SUDO_* variables. Any variables in the caller's environment that match the env_keep and env_check lists are then added. The default contents of the env_keep and env_check lists are displayed when sudo is run by root with the -V option. If the secure_path option is set, its value will be used for the PATH environment variable. This flag is on by default. 

Поэтому да, вы можете сделать это, используя env_reset , env_keep и env_check в вашем / etc / sudoers.