`sudoはどのPATHを実行しますか?「検索用」`?

`sudoはどのPATHを実行しますか?「検索用」`?

私のホームディレクトリにEclipseをインストールし、PATHそのパスを~/.profile

だからそれがどのように機能するか

$ eclipse 

しかし として呼び出すとsudo何もeclipse見つかりません。

$ sudo eclipse 
sudo: eclipse: command not found

どちらを検索PATHしますか?それはユーザーのものですか?sudo eclipseeclipserootPATH

ありがとうございます。

答え1

sudoデフォルトで使用最小 PATH、安全に使えるようにユーザー。これは必ずしもPATHログインして得られるのと同じ結果ではありません。ユーザーまたは以下を実行して

sudo su -

たとえば、最新のRed Hatバージョンではパスが省略されていることがわかりました/usr/local/bin

「というタイトルの章のマニュアルページ安全マニュアル:

sudo は外部コマンドの実行時にセキュリティを確保しようとします。

環境変数を処理する方法は2つあります。基本的に、env_resetsudoersオプションが有効になっています。これにより、以下を含む最小環境でコマンドが実行されます。TERMPATHHOMESHELLLOGNAMEUSERそしてUSERNAMEenv_checksudoersオプションで許可されている呼び出し手続きの変数に加えてenv_keep。実際、環境変数のホワイトリストがあります。

追加資料:

  • sudoers - ユーザーが何ができるか

    secure_path
    sudo で実行される各コマンドに使用されるパス。 sudoを実行している人が通常のPATH環境変数を持っていることを信頼していない場合は、この方法を使用できます。別の用途は、「ユーザーパス」から「ルートパス」を分離したい場合です。指定されたグループのユーザーexempt_groupオプションは影響を受けません。secure_path。このオプションはデフォルトでは設定されていません。

  • sudo - 他のユーザーとしてコマンドを実行する

関連情報