Cómo prevenir 'sudo rm -rf /'

10

Algunas veces accidentalmente ejecuté el comando sudo rm -rf /.

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

iProgram
fuente
2
¿Cómo escribes accidentalmente este comando y luego lo ejecutas?
fnord_ix
Si escribo un comando como este. sudo rm -rf / Applications/chess.appObserve el espacio entre la / y la A. Así es como
iProgram

Respuestas:

14

Puedes agregar una línea como

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

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

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

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

También puedes intentar ir a lo seguro 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 aún puede haber otras formas en las que puedes dispararte en el pie, rmasí que ten cuidado de todos modos.

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

PD: Por supuesto, úselo sudo visudopara editar el sudoersarchivo y NUNCA lo edite directamente

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

nohillside
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
bmike
6

Sé que formuló la pregunta de una manera que me hace sospechar que no quiere escuchar esta respuesta, pero realmente debería eliminarse del archivo sudoers si es propenso a cometer el mismo error una y otra vez.

El problema subyacente es que no tiene el alias rmpara ser trasladado a la basura (que es claramente cómo lo está utilizando actualmente y en el pasado) o de lo contrario forzado rm -ra ser forzado arm -ri

alias rm='/bin/rm -i'

Siempre puede sortear el alias command rm -rf whateveruna vez que haya entrenado su mente cuando mida dos veces, se necesita cortar una vez para rm -rfusar.

bmike
fuente
Gracias por ese consejo. Estaba pensando en hacer una cuenta de administrador oculta (solo para acceder al terminal) y una cuenta estándar solo para uso normal. También podría hacer que la envoltura se mueva a la basura. Gracias por ese consejo. Creo que prevenir el sudo puede ser un paso más seguro. Todavía me aseguraré de poder acceder ingresando al administrador oculto.
iProgram
Sin embargo, no se ha marcado como respondido ya que no responde a lo anterior. Sin embargo, esto sigue siendo un buen consejo
iProgram,