-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

更新:

感谢杰夫分享的链接,我现在看到了问题。当我使用 时, $PATH 的值与我使用后跟su - redbox - c 'ifconfig'时不同。su - redboxifconfig

有人可以解释为什么 $PATH 在这两种情况下都不同吗?请注意,在这两种情况下,我都使用了-登录 shell。

答案1

man sudoerssudo将其想法强加于$PATH其执行的命令上。

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

使用您的$PATH

sudo -u redbox /usr/sbin/ifconfig

相关内容