在远程服务器上,以前可以使用sudo-u 复制代码命令,但最近我无法完成此操作。当我这样做时,我收到以下错误:
sudo -u lool ./autogen.sh
/var/tmp/scltjLjKc: line 8: -u: command not found
因此,我必须先使用 sudo 切换到 root,然后再使用 su 切换到用户,然后才能执行命令。这可能是什么原因造成的?
答案1
由于这个问题从未得到答复,Zoredache 的评论是正确的。安装其中一个devtoolset-*
软件集是导致此问题的原因。我无法想象谁认为劫持sudo
是合理或负责任的做法。
解决这个问题的最快方法是这样做,而不会弄乱你的路径,也不会破坏你刚刚安装的开发工具:
# alter the file, so that it won't get overwritten by updates
echo '### garbage ####' >> /opt/rh/devtoolset-2/root/usr/bin/sudo
# make it non-executable so your system won't try to run it
chmod -x /opt/rh/devtoolset-2/root/usr/bin/sudo
当然,请替换devtoolset-2
为您所使用的任何版本。