비밀번호를 제공하지 않고 다른 사용자로 명령을 실행하는 데 필요한 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