Итак, « правильный » подход состоит в том, чтобы не предоставлять этим пользователям sudo, но кажется, что это одна из тех ситуаций, которые вы не можете избежать, чтобы предоставить пользователям такой доступ (допустим, вы остановили их при выключении, они могли бы просто rm -rf /*
вместо этого)
Однако, чтобы остановить их выполнение определенных команд через sudo, вы можете контролировать это в файле sudoers:
Во-первых, мы определяем псевдоним для выключения системы в /etc/sudoers.conf
Cmnd_Alias SHUTDOWN = /usr/sbin/shutdown
И затем мы удаляем возможность для любого в группе колеса, чтобы выполнить эту команду:
%wheel ALL = ALL, !SHUTDOWN
Это означает, что все пользователи могут запускать все команды на всех компьютерах, кроме команд в shutdown cmnd_Alias.
man sudoers
объясню это гораздо более подробно, и фактически содержит почти это точное объяснение. Также обратите внимание, что это не помешает кому-то преднамеренно пытаться выполнить команду выключения, только тем, кто случайно запустил ее, не осознавая (возможно, потому что они вошли в неправильную машину).