为什么我无法在 CentOs 中以其他用户身份执行命令?

为什么我无法在 CentOs 中以其他用户身份执行命令?

在远程服务器上,以前可以使用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为您所使用的任何版本。

相关内容