eclipseをホームディレクトリにインストールし、そのパスをPATHに配置しました ~/.profile内 。
だからそれは
によって動作します$ eclipse
ただし、sudoで呼び出すと 、eclipse 見つかりません:
$ sudo eclipse
sudo: eclipse: command not found
どのPATH sudo eclipse eclipseの検索に使用します ?ユーザーrootですか のPATH ?
ありがとう。
承認された回答:
sudo デフォルトでは、最小を使用します PATH 、 rootで安全に使用できるようにするため ユーザー。これは必ずしもPATHと同じではありません rootとしてログインすると取得できます ユーザー、または実行することによって
sudo su -
たとえば、新しいRed Hatリリースでは、パスで/usr/local/binが省略されていることに気付きました。 。
マニュアルページでは、これをセキュリティノートというタイトルのセクションにまとめています。 :
sudoは、外部コマンドを実行するときに安全を確保しようとします。
環境変数を処理するには、2つの異なる方法があります。デフォルトでは、
env_resetsudoers
オプションが有効になっています。これにより、コマンドはTERMを含む最小限の環境で実行されます。 、PATH、HOME、SHELL、LOGNAME、USERおよびUSERNAMEenv_checkによって許可された呼び出しプロセスからの変数に加えて
およびenv_keepsudoersオプション。事実上、
環境変数のホワイトリストがあります。
さらに読む:
-
sudoers –どのユーザーが何を実行できるかのリスト
secure_path
sudoから実行されるすべてのコマンドに使用されるパス。 sudoを実行しているユーザーが
適切なPATH環境変数を持っていると信頼できない場合は、これを使用することをお勧めします。もう1つの用途は、
「ルートパス」を「ユーザーパス」から分離したい場合です。exempt_groupで指定されたグループ内のユーザー
オプションはsecure_pathの影響を受けません 。このオプションは、デフォルトでは
設定されていません。 -
sudo –別のユーザーとしてコマンドを実行します