Cómo prevenir 'sudo rm -rf /'

10

Algunas veces he ejecutado accidentalmente el comando sudo rm -rf / .

¿Hay alguna manera de evitar que ejecute este comando? Por ejemplo, ¿puedo deshabilitarlo de alguna manera utilizando el archivo sudoers?

    
pregunta iProgram 15.06.2015 - 15:31

2 respuestas

14

Puedes agregar una línea como

%admin ALL = !/bin/rm -rf /

a su archivo sudoers para evitar la ejecución del comando con las opciones específicas.

O, si desea excluir varios comandos, puede trabajar con alias de comandos

Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /
%admin ALL=!DANGEROUS_CMNDS

También puedes intentar jugar de forma segura usando

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

pero todavía puede haber otras formas de dispararte en el pie con rm , así que ten cuidado de todos modos.

Pero tenga en cuenta que todas las coincidencias se realizan en la cadena completa del comando, por lo que sudo rm -rf /Volumes todavía funcionaría (como cd /; sudo rm -rf . ).

PS: Por supuesto, usa sudo visudo para editar el archivo sudoers y NUNCA edita directamente

PPS: obviamente no probé esto con rm (solo con /bin/echo en su lugar)

    
respondido por el nohillside 15.06.2015 - 15:56
6

Sé que expresaste la pregunta de una manera que me hace sospechar que no quieres escuchar esta respuesta, pero realmente deberías eliminarte del archivo sudoers si eres propenso a cometer el mismo error una y otra vez.

El problema subyacente es que no tiene alias rm para ser movido a la papelera (que es claramente cómo lo está utilizando actualmente y en el pasado) o forzó a rm -r a ser forzado a rm -ri

alias rm='/bin/rm -i'

Siempre puedes sortear el alias con command rm -rf whatever una vez que hayas entrenado tu mente cuando se mide dos veces, se necesita cortar una vez para el uso de rm -rf .

    
respondido por el bmike 16.06.2015 - 21:59

Lea otras preguntas en las etiquetas