
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 -i
rootユーザーの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_keep
PATH
visudo
...が起動したら、$EDITOR
適切に...を変更できます。Defaults env_keep =
または/etc/profile.d
。
たとえば、
cat <<EOF > /etc/profile.d/tjameson.sh
export PATH=$PATH:/usr/local/bin
EOF