Синтаксис sudoers не дает выхода, и я мог бы предложить написать сценарий-оболочку (, скажем, игнорировать все, кроме первого аргумента, и канонизировать его, используяrealpath
)и друзей ), но это было бы все равно бесполезно:
sudo cat /var/log/messages/../../../etc/shadow
Не зная вашего фактического варианта использования, я могу только прокомментировать пример со страницы руководства, и для этого я бы сказал, что фактическое решение — вообще не использовать sudo, а использовать ACL. Используйте ACL, чтобы предоставить пользователю доступ ко всему в каталоге, а файловая система позаботится об ограничении их доступа.
Есть несколько вариантов:
На уровне ядра правила udev и эксклюзивный захват устройства ввода с клавиатуры ноутбука, если обнаружена другая клавиатура.
На уровне X отслеживайте события xinput и отключайте клавиатуру ноутбука xinput или удаляйте ее из основной клавиатуры.
Для того и другого требуется собственный код/скрипты, хорошее понимание элементов, которые вам нужно использовать, и, возможно, несколько дней возни, чтобы сделать все правильно. И я не знаю, чтобы кто-то чувствовал необходимость сделать это раньше. Так что я не могу дать вам описание шага -за шагом -.
Но это определенно можно сделать.