Ich weiß, dass dies eine wirklich alte Frage ist, aber hier habe ich sie heute in einem Skript gemacht. Angenommen, sudo zu sein bedeutet, jeden Befehl als sudo ausführen zu können (oder zumindest Betriebszeit)
CAN_I_RUN_SUDO=$(sudo -n uptime 2>&1|grep "load"|wc -l) if [ ${CAN_I_RUN_SUDO} -gt 0 ] then echo "I can run the sudo command" else echo "I can't run the Sudo command" fi
Wenn Ihr Benutzer jedoch Einschränkungen im visudo hat, wird diese Prüfung nicht ausreichen, z. B. wenn Ihr Benutzer nur den make-Befehl verwenden kann. Versuchen Sie, einen Befehl auszuführen, von dem Sie wissen, dass er funktioniert. Sie können den Filter grep -v Sorry hinzufügen, z. B.:$(sudo -n uptime 2>&1|grep "load" | grep -v Sorry|wc -l), um diese Fehlalarme zu vermeiden.
Der -n
Option ist in neueren Versionen von sudo verfügbar, aber wie Sie sagten, ist dies keine Option. Es gibt keine wirkliche Möglichkeit, das zu tun, wonach Sie suchen, außer einfach sudo auszuprobieren und zu sehen, ob es mit einer Aufforderung zur Eingabe eines Passworts zurückkommt. Wenn Sie eine visuelle Anzeige möchten, warum starten Sie nicht do sudo /bin/bash, um eine Root-Bash-Sitzung zu starten? Beachten Sie, dass dies unsicher ist, aber es ist auch etwas unsicher, wenn jemand Ihre Eingabeaufforderungsänderungen auf sudo erkennt.
Zur Vereinfachung der Antwort von @wags007
if sudo -n true
then
sudo id
else
echo "sorry, but did not want to bother you"
fi
Wenn Sie jedoch in Ihrer https://www.sudo.ws/man/1.8.15/sudoers.man.html-Konfiguration defaults mail_badpass
haben Es wird eine E-Mail für jeden Test gesendet, der ein falsches Ergebnis ergibt (hätte aufgefordert). Um solche Belästigungen zu vermeiden, ändern Sie diesen Teil Ihrer sudoers-Datei in
Defaults mail_badpass
Defaults! /bin/true !mail_badpass
Als Ergebnis werden Sicherheitswarnmails für alle Befehle außer /bin/true gesendet. Nun ja, jemand könnte jetzt versuchen, ein Passwort per Brute-Force zu erzwingen, indem er sudo true
aufruft unbegrenzt oft, ohne dass Sicherheitswarnungen per E-Mail gesendet werden.
Hinweis:Verwenden Sie immer visudo
anstelle Ihres bevorzugten Editors, um die sudoers-Datei zu bearbeiten. Andernfalls riskieren Sie, ausgesperrt zu werden.