抑制“sudo:抱歉,运行 sudo 需要密码”

抑制“sudo:抱歉,运行 sudo 需要密码”

我正在尝试测试用户是否具有所需的 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

相关内容