我以 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 - redbox
ifconfig
有人可以解释为什么 $PATH 在这两种情况下都不同吗?请注意,在这两种情况下,我都使用了-
登录 shell。
答案1
读man sudoers
。sudo
将其想法强加于$PATH
其执行的命令上。
sudo -u redbox -c $( type -p ifconfig)
使用您的$PATH
或
sudo -u redbox /usr/sbin/ifconfig