In sudoers lässt sich festlegen mit welchen Schaltern genau es zulässig ist, dass bestimmte Nutzer das Programm genau so starten dürfen, wie gewünscht wird. Beim setuid-Bit können beliebige Schalter gesetzt werden und jeder hat gleich root Rechte. Dort mal ein Beispiel wie so etwas ausgenutzt werden könnte: http://blog.shellmates.org/2012/09/dont-setuid-nmap.html.
Wäre also varbin der User, der mit prime-select von intel auf nivida schalten darf, so wären zwei Zeilen statt nur einer aus Sicherheitssicht wohl sogar besser:
varbin ALL=(ALL) NOPASSWD: /usr/bin/prime-select nvidia
Zurückschalten auf intel dürfte in diesem Fall user varbin erst mal nicht und auch sonst nichts außer mittels prime-select auf nvidia umschalten.
Damit user varbin wieder mittels prime-select auf intel zurückschalten darf bedürfte es noch einer weiteren Zeile:
varbin ALL=(ALL) NOPASSWD: /usr/bin/prime-select intel
So könnte man dem user hund das umschalten gar nicht erlauben, damit der hund nicht den Akku leer saugt:
# hund für dich gibt es hier keinen Freilauf!
Aber der userin katze das passwortlose umschalten auf intel erlauben, falls user varbin müde nach dem Videogame zocken vergessen hat auf intel zurückzuschalten, so dass die katze dann ihre Katzenbilder angucken kann, ohne unnötig den Akku leer zu saugen.
# Alles für die katze:
katze ALL=(ALL) NOPASSWD: /usr/bin/prime-select intel