sudoを使用すると、どのような環境を得ることができますか?

sudoを使用すると、どのような環境を得ることができますか?

sudoを実行すると、私の環境に正確に何が起こりますか?

実行すると、sudo command私の環境やルート環境が表示されないようです。たとえば、私のパスはすべて含まれていますが、フルパスなしで/usr/local/binプログラムの1つを実行しようとすると失敗します。

私はsudoがrootとして実行されていると考えてroot環境を得ました。 bashはsudoでrootまたはプレーンユーザーとは異なりますか?

編集する:

最近使用していますが、sudo -i現在の作業ディレクトリがに設定されているため、問題が発生しています/root。これは期待どおりに機能しますが、sudoが私の実行可能ファイルを認識しない理由をまだ理解していません/usr/local/bin

編集する:

私はFedora 15を使用しています。

答え1

Fedoraのデフォルト値はわかりませんが、Debianではオプションのsudoデフォルト値が 。secure_path/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

これは、パスを使用するたびにその値に変更されますが、sudoこれを使用すると、sudo -irootユーザーのRCファイルによってパスが変更されることを意味します。

答え2

次のように簡単に確認できます。

出力比較

sudo env 
env

このようなものもあります。

sudo whoami 
whoami

これにより、設定で何が欠落しているかを判断できます。

答え3

このsudo -iコマンドは初期ログインをシミュレートします。私のDebianシステムには次のようなものもあります。

これは、シェルが.profileや.loginなどのログイン固有のリソースファイルを読み取ることを意味します。コマンドが指定されると、実行のためにシェルに渡されます。それ以外の場合は、対話型シェルが実行されます。 sudo は、シェルを実行する前にユーザーのホームディレクトリに変更を試みます。また、環境を初期化し、DISPLAY と TERM を変更せずに HOME、MAIL、SHELL、USER、LOGNAME、PATH、Linux および AIX システムの /etc/environment コンテンツも設定します。他のすべての環境変数は削除されます。

答え4

を含めるようにパラメータをsudo調整できますが、その場合はセキュリティに与える影響を念頭に置いてください。env_keepPATH

visudo

...が起動したら、$EDITOR適切に...を変更できます。Defaults env_keep =

または/etc/profile.d

たとえば、

cat <<EOF > /etc/profile.d/tjameson.sh
export PATH=$PATH:/usr/local/bin
EOF

関連情報