我是以root用户身份登录的,需要在不切换的情况下从redbox用户执行一个命令。为此,我使用以下命令:
# su - redbox -c 'CMD'。
当我尝试执行"ifconfig“(su - redbox -c 'ifconfig')时,会得到以下错误:
-bash: ifconfig:命令找不到
但是,如果我先切换到redbox,然后执行"ifconfig“,如下所示,它可以工作:
# su - redbox $ ifconfig
对于更多的命令来说,也存在同样的问题。我不明白是什么导致了这个问题。请帮我弄清楚。
我正在使用AlpinLinuxv3.9.4
<#>更新:
感谢Jeff共享的链接,我现在看到了这个问题。使用su - redbox - c 'ifconfig'时,$PATH的值与使用su - redbox后接ifconfig时的值不同。
有人能解释为什么$PATH在这两种情况下是不同的吗?请注意,在这两种情况下,我都使用了-,它使用登录shell。
发布于 2019-12-18 17:34:52
读man sudoers。sudo在它执行的命令上强制执行它的$PATH思想。
sudo -u redbox -c $( type -p ifconfig) 使用您的$PATH或
sudo -u redbox /usr/sbin/ifconfighttps://unix.stackexchange.com/questions/557871
复制相似问题