16512

[code]

    $ echo $PATH
    /usr/bin:/home/user1/bin
    $ sudo echo $PATH
    /usr/bin
    $ sudo -E echo $PATH
    /usr/bin:/home/user1/bin
    
[/code]

こんなかんじだとします。  
ここで、test.shに以下のように書き込んで

[code]

    echo $PATH
    
[/code]

実行すると、sudoの-Eオプションが効いてないように振る舞います。

[code]

    $ sudo -E /bin/sh ./test.sh
    /usr/bin
    
[/code]

シェルスクリプト内にもsudo元ユーザの環境変数を引き継いでやりたいのですが、そういうことはできますか？  
シェルスクリプトは定期的に更新されるような類のものなので、できればそちらは弄らずにコマンドを工夫する形でどうにかしたいです。

実行環境はubuntu 14.04.3 LTSの`/bin/sh`です。


CC BY-SA 3.0
2015-09-10T23:20:51.197
16487
2015-09-11T06:52:59.203
2015-09-10T23:31:39.630
10685
10685
question
linux sh shellscript
シェルスクリプトをsudoしても環境変数を引き継ぎたい


/etc/sudoers ファイルで secure_path が設定されていると PATH は上書きされて引き継がれません。  
exempt_group で secure_path を除外するグループを設定することができます。

[code]

    (設定例)
    Defaults   exempt_group=adm
    
[/code]


CC BY-SA 3.0
2015-09-11T06:52:59.203
16512
2015-09-11T06:52:59.203
4603
16487
answer