- ユーザーログインセッションで実行すると、実行中にrootに
sudo <command>
変更されますか?$PATH
$PATH
sudo <command>
ルートではなく
<command>
ユーザーに依存している場合、ユーザーはどのようにこれを正常に実行できますか?$PATH
$PATH
sudo <command>
1つの方法は
sudo su
rootになり、rootを$PATH
ユーザーのrootに変更して<command>
直接実行することです。これが私が問題を解決した方法です gemをインストールするためのより高いRubyバージョンを指定する方法は?。より簡単な方法がありますか?
- ユーザーからrootに切り替えることなく実行できますか?
ベストアンサー1
ユーザーログインセッションでsudoを実行すると、sudoの実行中に$ PATHがrootの$ PATHに変わりますか?
sudo
$PATH
セキュリティポリシーによって変数が変更されます。 ~からsudo
マニュアルページ:
PATH
May be overridden by the security policy.
ほとんどのシステムでは、このオプションはデフォルトで有効になっているため、env_reset
sudoersオプションで許可されている呼び出しプロセスの変数を含む最小環境でコマンドが実行されます。TERM
PATH
HOME
SHELL
LOGNAME
USER
USERNAME
env_check
env_keep
セキュリティ上の理由から、オプションで金庫を次のように設定/etc/sudoers
できます。secure_path
PATH
sudo
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
rootの$ PATHではなく、ユーザーの$ PATHに依存している場合、ユーザーはどのようにsudoを正常に実行できますか?
PATH
実行時にユーザーの情報を保持できるからですsudo
。いつでも次のことができます。
sudo env "PATH=$PATH" <command>