
パスワードを指定せずに他のユーザーとしてコマンドを実行するために必要な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