/etc/profile
にPATHを設定しました。一般ユーザーの場合は問題ありませんが、Sudo
のroot権限になるとPATHが行きません。
PATH
のルート権限になったとしても、/etc/profile
によって設定されたSudo
をオーバーライドするにはどうしますか?
Sudoは、セキュリティ上の理由から、他の多くの環境変数とともにPATHをリセットします。 Sudo -i
を実行しない限り、/ etc/profileに何が設定されているかは関係ありません。
Sudoのマニュアルページの[SECURITYNOTES]には、セキュリティへの影響についての洞察と、これらの制限を変更するために/ etc/sudoersファイルをいじる必要があるオプションが記載されています。
ルートのパスは/ etc/profileによって変更されません(セキュリティ...)
個別に設定する必要があります(例:rootの〜/ .bash_profile)
更新:
SudoまたはSudo-iを使用するときに、「root」アカウントのデフォルトPATHに特定のPATHを追加する場合は、次のようにします。
buntu 10.04.x LTSの場合:
それに応じて、/ etc/environmentファイルとetc/login.defsファイルの両方を変更します。
buntu 12.04.x LTSの場合:
それに応じて、/ etc/environmentと/ etc/login.defsファイルの両方を変更しますおよび行デフォルトはsecure_pathの/ etc/sudoersファイル(visudoを使用)。
GUIを使用していて、テキストモードのnanoエディターに慣れていない場合は、次のコマンドを使用して、geditで/ etc/sudoersファイルを編集します。
Sudo EDITOR = gedit visudo
/ etc/sudoersファイルを保存すると、visudoは変更の構文をチェックします。
すべて問題がなければ、ターミナルセッションに戻ります。
エラーが発生した場合は、文字「e」を押して/ etc/sudoersファイルを再度編集し、変更を修正します。
Ubuntu 12.10はまだ試していませんが、Ubuntu 12.04.xと同じだと思います(そして願っています)
乾杯。
Linuxディストリビューションでセキュリティポリシープラグインが有効になっている場合、PATH
はsudoers
ファイルのsecure_path
で上書きされる可能性があるため、Sudo visudo
で編集する必要があります。それをリストに追加します。
その場合は、次の方法で確認できます。
$ Sudo sudo -V | grep PATH
Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
または、1回限りの使用については、次を試してください。
Sudo "PATH=$PATH" foo
参照: Sudoとsuを介して実行する場合にPATH変数が異なるのはなぜですか? UnixSEで