` / etc / sudoers ` - 1つのコマンドにのみ `env_keep`を指定しますか?

` / etc / sudoers ` - 1つのコマンドにのみ `env_keep`を指定しますか?

sudo特定の環境変数が指定されたコマンドに対してのみ保持されるように指定する方法はありますか?ある目的のために私は私の$HOME環境が欲しい。特定のコマンドを実行すると、変数は保持されます。他の目的や他のコマンドのためにリセットしたいと思います。これは可能ですか/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 でテスト中です。)

(注:これは具体的ではないと思います。btw -nano単純な1行のbashスクリプトで動作を再現できます)。echo$HOME

答え1

env_keep/path/to/command(すべてのユーザーがルールを介して呼び出す場合)およびユーザーjoe(実行中のコマンドに関係なく)のみをオーバーライドします。

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

-=またはを使用して、リスト+=から項目を削除または追加できます。env_keep

答え2

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

この行は、ユーザープロファイルを見つけるためにrootとして実行する必要がある問題を解決するために書かれています/etc/sudoers(これを移動すると、システムプロファイルとユーザープロファイルの両方の目的が失われます)。pbuilder$HOME/root

答え3

男性の首都:

   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.

はい。 /etc/sudoers.conf でenv_reset、 と を使用してenv_keepこれを行うことができます。env_check

関連情報