Se modificó el archivo sudoers y ya no se puede abrir; no se puede abrir ningún archivo usando root

8

Cambié la configuración en el archivo sudoers usando

sudo visudo 

y lo estropeó Ahora, cuando intento volver a hacerlo o abrir cualquier archivo con sudo, ya no puedo abrirlo y aparece este mensaje de error:

>>> archivo sudoers: error de sintaxis, línea 7 

¿Ahora que?

¿Hay alguna forma de salir de este problema (para revertir la configuración) o necesito instalar una copia nueva de Linux?

La razón por la que obtuve todo esto es que presioné "Q" mientras me decía que había algún error, lo cual fue muy estúpido de mi parte.

Gracias.

EDITAR

Mi archivo de sudoers no es diferente al archivo de sudoers normal. Acabo de agregar timestamp_timeout = 0 línea en ese archivo y surgieron todos estos problemas. Hice lo que James sugirió e incluso eliminé esa línea (timestamp_timeout = 0). Cambié el permiso de archivo a 0440 que solicitó, y luego arranque normalmente. Entonces, recibo el mismo mensaje de error

sudoers file: syntax error, line 7 
sudo: parse error in /etc/sudoers near line 7
como anteriormente.

Qué debería hacer ahora ??

EDIT 2 resuelto

Esto es lo que hice:

  1. Arrancar usando livecd
  2. Eliminar el antiguo archivo de sudoers
  3. Creé un nuevo archivo de sudoers y copié todo en ese archivo, es decir, las configuraciones mínimas de configuración, que por suerte había guardado en otro archivo
  4. Se modificó el permiso de archivo a 0440
  5. Reiniciar de nuevo normalmente desde el disco duro

Hurra !!

Karlo
fuente
puede pegar el contenido de su archivo sudoers en www.pastebin.com y dejarnos echar un vistazo, probablemente la forma más rápida.
Andrioid
Buscaría # faltantes en comentarios, dos puntos faltantes, signos iguales, barras invertidas de continuación de línea, etc.
Pausado hasta nuevo aviso.

Respuestas:

8

Suponiendo que no le dio una contraseña al usuario root, la forma más fácil de solucionar esto es con un CD en vivo como Knoppix . Arranque del CD. Monte el disco local, edite el archivo, desmonte el disco y reinicie.

James
fuente
6

Simple, inicie la computadora en ' modo de usuario único ' siguiendo estos pasos:

  1. Reiniciar
  2. Cuando Grub comienza, presiona ESC (o escapar)
  3. Presione 'e' para editar la línea actual
  4. Agregue 'single' al final de la línea que contiene 'linux'
  5. Arranque (presione b)

Esto iniciará la computadora con un solo usuario, root. A partir de ahí, siga estos pasos:

  1. / usr / bin / vim / etc / sudoers (o usar nano, podría ser más fácil para usted) para solucionar el problema
  2. Si no está seguro del problema, intente copiar el ejemplo incluido de sudoers de "/ usr / share / doc / sudo / examples" (varía) y, por supuesto, agregue su usuario allí.
  3. Guarde el archivo, salga de Vim
  4. Reiniciar, disfrutar!
Andrioide
fuente
Me preguntaba cuándo pide una contraseña antes de que le dé el shell de usuario único.
James
Este método no funciona para todas las distribuciones. Dado que es una puerta trasera muy conocida, algunas distribuciones fuerzan un inicio de sesión antes de llegar a un indicador raíz. Parece que ese es el caso para ti, James.
Telemachus
No sabía que las distribuciones habían comenzado a hacer eso, siempre funcionaron para mí en los viejos tiempos de Slackware
Andrioid el
Debería recomendar el uso de visudo sobre vim: en.wikipedia.org/wiki/Visudo
3

La idea de James de usar un CD en vivo (suponiendo que la cuenta raíz no esté habilitada) es buena. Añadiría algunos puntos.

  • Primero, puede tener suerte y una copia de seguridad del archivo / etc / sudoers se guardó automáticamente cuando lo estaba editando. Verifique / etc para ver un archivo que se vea así sudoers~ (puede cdhacerlo en ese directorio y ejecutarlo ls -A sin privilegios de root, incluso si no puede leer o editar los archivos como un usuario normal). Algunos editores crearán dicha copia de seguridad si es que lo hacen. posible, por lo que puede tener uno sin haberlo creado explícitamente.
  • En segundo lugar, si no tiene idea de cómo editar el archivo, puede considerar publicarlo (o el área alrededor de la línea 7) aquí o en otro lugar. Aunque el archivo en sí tiene que ver con la seguridad, no contiene contraseñas, por lo que no hay ningún daño inmediato al publicarlo.
  • Por último, tenga en cuenta que un mensaje de error como el que vio no necesariamente significa que el problema en sí está literalmente en la línea 7. El error podría estar en la línea 4, pero solo se disparó, por así decirlo, en la línea 7.
Telémaco
fuente
0

Intenta presionar e, para editar. Esto debería permitirle editar el archivo y corregir los errores.

Torandi
fuente
Presionando 'e' cuando se muestra el error, después de que termine de editar, lo regresará para que pueda corregir sus errores. Lamentablemente, no te menciona esto explícitamente.
0

Para aquellos de nosotros que no tenemos una consola o acceso local al servidor para arrancar en el nivel de ejecución 1 o tenemos un conjunto raíz (o las credenciales / certificados disponibles), use pkexec visudo o pkexec vi / etc / sudoers, visudo es mejor como lo hace error al verificar el archivo.

luego
fuente
Pero, ¿cómo puede pkexechacer su oferta si no conoce la contraseña de root?
Scott,