-bash: ifconfig: "su - redbox -c 'ifconfig'" を使用すると、コマンドが見つかりません。

-bash: ifconfig: "su - redbox -c 'ifconfig'" を使用すると、コマンドが見つかりません。

私はrootとしてログインし、切り替えることなくredboxユーザーから単一のコマンドを実行する必要があります。これを行うには、次のコマンドを使用します。

# su - redbox -c 'CMD'

"ifconfig"( ) を実行しようとすると、su - redbox -c 'ifconfig'次のエラーが発生します。

-bash: ifconfig: コマンドが見つかりません

しかし、まずredboxに切り替えてから「ifconfig」を実行すると、次のように動作します。

# su - redbox $ ifconfig

より多くのコマンドに同じ問題があります。この問題の原因は何かを理解していません。私が理解するのを手伝ってください。

私はAlpine Linux v3.9.4を使用しています。

修正する:

Jeffが共有したリンクのおかげで、問題が表示されます。を使用する場合、 $PATH の値が をsu - redbox - c 'ifconfig'使用する場合と異なります。su - redboxifconfig

どちらの場合も、$PATHが異なる理由を誰か説明できますか?どちらの場合も、-ログインシェルを使用しています。

答え1

読むman sudoers。実行するコマンドにsudo独自のアイデアを適用します。$PATH

sudo -u redbox -c $( type -p ifconfig) 

あなたの$PATHまたは

sudo -u redbox /usr/sbin/ifconfig

関連情報