El archivo Sudoers está en mal estado

El archivo Sudoers está en mal estado

Accidentalmente cometí un error en el sudoersarchivo y ahora no puedo arreglarlo porque si intento cambiar el archivo aparece un mensaje de permiso denegado. Si uso sudopara abrir el archivo, dice error de sintaxis y no sudoersse encontraron fuentes válidas y no ejecutaré el comando. Estoy en raspbian, una versión de Debian.

¿Alguien sabe cómo salir de este círculo vicioso?

Respuesta1

  1. Si conoce la rootcontraseña (y está configurada), puede usarla supara convertirse rooty editarla /etc/sudoers.
  2. Si su sistema de archivos raíz está en una tarjeta SD, puede extraerlo y editarlo /etc/sudoersen una PC o en cualquier otro dispositivo, siempre que tenga un lector de tarjetas.
  3. Puede ingresar a la línea de comando U-Boot (cargador de arranque) (generalmente presionando un botón en el teclado o mediante UART) y agregarlo 1a la línea de comando del kernel de Linux para ingresar al modo de usuario único. En este modo podrás rooty podrás editar /etc/sudoers. Ver tambiéneste.

Respuesta2

Tendrás que iniciar en modo de usuario único.

https://serverfault.com/questions/482079/debian-boot-to-single-user-mode

Como usuario root, podrá editar el archivo sudoers para solucionarlo. Recomiendo ampliamente usar el visudocomando para editar su archivo sudoers en el futuro, para evitar tener que volver a realizar esto, ya que visudo verifica la sintaxis del archivo antes de guardarlo.

Respuesta3

Si está en una instancia de la nube, tendrá un poco más de problemas.

Existen técnicas que dependen de la distribución, pero si ya tiene Docker instalado y ejecutándose, generalmente puede utilizar un contenedor Docker para solucionar el problema. Esto se debe a que, normalmente, el servicio Docker se ejecuta como root y cualquier cosa que se haga en un volumen montado dentro del contenedor se ve afectada como root en el host.

En anfitrión:

docker run --rm -ti -v /etc:/usr/local/etc busybox sh

"Busybox" es simplemente una pequeña distribución agradable que no tardará mucho en descargarse. Si ya tiene una imagen de Docker que tiene un shell disponible, simplemente úsela.

En el contenedor Docker:

cd /usr/local/etc
vi sudoers

Es posible que haya agregado un archivo incorrecto al /etc/sudoers.d/directorio. En cuyo caso, probablemente simplemente elimine ese archivo.

Cuando salgas del contenedor, podrás sudovolver a hacerlo.

¡Uf!

información relacionada