我正在尝试测试用户是否具有所需的 sudo 权限,可以在不提供密码的情况下以其他用户身份运行命令。我有的是这个
sudo -u other-user -n true
if [ $? -ne 0 ]; then
echo "ERROR: You don't have the neccessary sudo rights"
else
echo "OK. You do have the neccessary sudo rights"
fi
但是,如果 sudo 需要密码,脚本会打印此错误消息
sudo: sorry, a password is required to run sudo
是否可以抑制此错误消息?
我尝试重定向系统错误和系统输出,但错误消息仍然出现。
sudo -u other-user -n true > /dev/null 2>&1
答案1
正常的方式对我来说效果很好:
$ sudo -u test -n true
sudo: a password is required
$ echo $?
1
$ sudo -u test -n true >/dev/null 2>&1
$ echo $?
1
但如果出于某种原因它对您没有帮助,请尝试以下操作:
$ { sudo -u test -n true ; } >/dev/null 2>&1
$ echo $?
1
$ ( sudo -u test -n true ) >/dev/null 2>&1
$ echo $?
1