10 votos

Cómo evitar 'sudo rm -rf /'

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

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

14voto

Puede añadir una línea como

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

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

O, si quieres excluir varios comandos, puedes trabajar con alias de comandos

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

También puede intentar ir a lo seguro utilizando

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 dispararse en el pie con rm así que tenga cuidado de todos modos.

Pero hay que tener en cuenta que todas las coincidencias se hacen en la cadena completa del comando, por lo que sudo rm -rf /Volumes seguiría funcionando (al igual que cd /; sudo rm -rf . ).

PD: Por supuesto, utilice sudo visudo para editar el sudoers archivo y NUNCA editarlo directamente

PPS: Obviamente no he probado esto con rm (sólo con /bin/echo en su lugar)

6voto

Oskar Puntos 1242

Sé que has formulado 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 has puesto el alias rm que se mueva a la basura (que es claramente como lo está utilizando actualmente y en el pasado) o que se obligue a rm -r para ser forzado a rm -ri

alias rm='/bin/rm -i'

Siempre se puede evitar el alias con command rm -rf whatever una vez que hayas entrenado tu mente en que medir dos veces, cortar una vez es necesario para rm -rf uso.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X