私は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 - redbox
ifconfig
どちらの場合も、$PATHが異なる理由を誰か説明できますか?どちらの場合も、-
ログインシェルを使用しています。
答え1
読むman sudoers
。実行するコマンドにsudo
独自のアイデアを適用します。$PATH
sudo -u redbox -c $( type -p ifconfig)
あなたの$PATH
または
sudo -u redbox /usr/sbin/ifconfig