Вы можете добавить строку как
%admin ALL = !/bin/rm -rf /
в ваш sudoers
файл, чтобы предотвратить выполнение команды с конкретными параметрами.
Или, если вы хотите исключить несколько команд, вы можете работать с псевдонимами команд
Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /
%admin ALL=!DANGEROUS_CMNDS
Вы также можете попытаться избежать опасности, используя
Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /, /bin/rm / *, /bin/rm * /, /bin/rm -rf / *, /bin/rm -rf * /, /bin/rm -fr / *, /bin/rm -fr* /
%admin ALL=!DANGEROUS_CMNDS
но все еще могут быть другие способы, которыми вы можете выстрелить себе в ногу, rm
так что будьте осторожны в любом случае.
Но имейте в виду, что все сопоставления выполняются для полной строки команды, поэтому sudo rm -rf /Volumes
все равно будет работать (как и было бы cd /; sudo rm -rf .
).
PS: Конечно, используйте sudo visudo
для редактирования sudoers
файла и НИКОГДА не редактируйте его напрямую
PPS: Я явно не проверял это с rm
(только /bin/echo
вместо)