martes

Como restaurar el fichero sudoers en Ubuntu 13.04


como-restaurar-fichero-sudoers-ubuntu

¡Hola! En el artículo de esta semana te voy a explicar como restaurar el fichero sudoers en Ubuntu 13.04. En determinadas ocasiones, tenemos la necesidad de editar este fichero tan importante para este sistema, si por cualquier circunstancia cometemos un error al editarlo, esto provocará dependiendo del error en sí, que no podamos ejecutar determinados comandos, aún siendo nuestro usuario administrador del sistema.

Al final del artículo, te dejo un vídeo en el que te explico un sencillo truco, para poder restaurar o modificar el fichero sudoers, pero antes te voy hablar un poco sobre él.



¿Qué es y para que sirve el fichero sudoers?




El fichero sudoers se encuentra en el directorio /etc  que es donde están todos los archivos de configuración en los sistemas Linux. Este fichero es muy importante, ya que es donde se guardan todas las reglas de acceso, los alias y las opciones por defecto de sudo. En el archivo sudoers, se establecerá quien y como puede ejecutar sudo.


Es muy importante que al editar este fichero utilices el editor visudo, ya que este te avisará de si has cometido algún error y evitara que cierres el archivo si lo has hecho. Aunque también se puede editar con otros programas como: nano, gedit, vim...

A continuación te voy a explicar un poco, lo que significan las lineas del fichero. Para abrirlo, escribe en la terminal: sudo visudo y te aparecerá el fichero para editarlo, para poder hacer esto, debes de ser usuario administrador del sistema. 

El archivo viene en inglés, pero a continuación he traducido lo que quiere decir cada línea y he agregado algo más si lo he creído conveniente. Todas las líneas que comienzan por este símbolo # son comentarios, que lo único que hacen es informarnos.


fichero-sudoers


# This file MUST be edited with the 'visudo' command as root.
Este archivo debe ser editado con el comando 'visudo' como root.(Esto es lo que te he comentado arriba, así nos ahorraremos de meter la pata al cerrar el archivo modificado).


# Please consider adding local content in /etc/sudoers.d/ instead of directly modifying this file.
Por favor considerar la adición de contenido local en /etc/sudoers.d/ en lugar de modificar directamente el archivo.(Aquí nos está diciendo que es recomendable introducir los archivos con las ordenes a ejecutar en el directorio sudoers.d en vez de modificar este archivo).

# See the man page for details on how to write a sudoers file.
Lea la página de manual para más detalles sobre cómo escribir un archivo sudoers.

Defaults env_reset
Defaults
secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
(Esto anterior son reglas por defecto que vienen establecidas en el sistema, con secure_path se está diciendo que el comando introducido por la terminal se busque en los directorios que aparecen a continuación ).

# Host alias specification
Especificación de alias de host (cuando hablo de la definición de un alias me refiero a cualquier tipo de elemento como: usuarios, comandos y hosts, los alias se crean cuando quieres ejecutar varias ordenes de una sola vez, para que se queden guardados en el sistema, debes de reflejarlos aquí).

# User alias specification
Especificación alias usuario 

# Cmnd alias specification
Especificación de alias cmnd (comandos)

# User privilege specification
Especificación de privilegios del usuario (en este caso se introducen el usuario al que queremos dar el privilegio, los comandos que dicho usuario podrá ejecutar, en calidad de que usuario privilegiado podrá ejecutarlo y en que host podrá hacerlo. En este caso, el usuario es root, los comandos son todos, en calidad de todos los usuarios privilegiados y en todos los hosts, por eso se emplea la palabra ALL=todos). 
root ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
Los miembros del grupo de administración pueden obtener privilegios de root
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
Permitir a los miembros del grupo sudo para ejecutar cualquier comando
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:
Ver sudoers (5) para más información sobre "# include" directivas

#includedir /etc/sudoers.d
Incluir los ficheros que se encuentren en el directorio sudoers.d

Se que es bastante complejo de entender todo lo que te he explicado hoy si es la primera vez que lo ves, pero si ya tienes conocimientos previos, te vendrá genial o por lo menos eso espero.

Te dejo con el vídeo en el que te muestro como restaurar o modificar el fichero sudoers en Ubuntu 13.04. ¡Saludos y hasta la próxima!

6 comentarios:

  1. Anónimo05:46

    Muchas gracias por el aporte. Muy bien explicado todo y de mucha calidad.

    ResponderEliminar
    Respuestas
    1. Muchas gracias a ti por tu comentario y me alegro mucho que te haya servido!! Saludos!! ;-)

      Eliminar
  2. Anónimo14:22

    Hola Rafa me tomo la libertad de incluir las instrucciones para poderlas imprimir y disponer de ellas mientras se soluciona el entuerto.
    Muchas gracias por solucionarme la papeleta.

    En cualquier momento con el comando "pwd" veremos la ruta dónde estamos y con "ls" lo que tenemos ahí.
    Para entrar en una carpeta comando "cd" (ejemplo: "cd carpetapepe" para entrar en carpetapepe)
    Para salir o volver hacia atrás "cd .."

    Cargamos un live CD de nuestra distribución, en mi caso Lubuntu
    Abrimos un terminal y...

    lubuntu@lubuntu:~$ sudo fdisk -l

    Esto nos habrá listado nuestros discos y particiones, tomamos nota de cuál es nuestra partición Linux del disco duro, en mi caso /dev/sda3
    Ahora creamos una carpeta...

    lubuntu@lubuntu:~$ mkdir carpetapepe

    En la que montaremos nuestra partición...

    lubuntu@lubuntu:~$ sudo mount /dev/sda3 /home/lubuntu/carpetapepe

    Bien, ahora vamos a editar el archivo estropeado sudoers.
    No podemos usar sudo visudo porque estaríamos editando el sudoers del liveCD.
    Así que usamos nano o cualquier otro editor como gedit o leafpad.

    lubuntu@lubuntu:~$ sudo nano carpetapepe/etc/sudoers

    Editamos el error y queda reparado el sudoers de mi linux que previamente había montado en carpetapepe.

    Si desconocemos cuál era el error o simplemente hemos sido tan bestias de borrar todo el contenido de sudoers o el archivo mismo,
    aún hay solución: copiaremos el sudoers del liveCD a la carpeta /etc de nuestro Linux (montado en carpetapepe)

    lubuntu@lubuntu:~$ sudo cp /etc/sudoers carpetapepe/etc (al usar el mismo nombre de archivo ya lo machaca y sustituye directamente o lo crea si no existía)

    Asunto arreglado.... A FALTA DE UN DETALLE...el sudoers copiado del liveCD no tiene nombres de usuarios :-P Así queee... editamos:

    lubuntu@lubuntu:~$ sudo nano carpetapepe/etc/sudoers

    Añadimos nuestro usuario al final del archivo, porque de lo contrario al querer usar sudo en nuestra sesión nos diría que no estamos en la lista de sudoers y no podríamos hacer nada.

    # Members of the admin group may gain root privileges
    usuariopepito ALL=(ALL) ALL

    Y colorín colorado....ya puedes imprimir esto y darle caña al mono.

    ResponderEliminar
    Respuestas
    1. Buenas anónimo, me parece muy bien que lo imprimas porque así lo tienes para consultar si no dispones de ordenador para consultarlo vía on-line, desde mi punto de vista creo que todos los pasos que has comentado están bien, aunque creo que sabrás que luego llevarlo a la práctica suele ser diferente, algunas veces pueden ocurrir algunos inconvenientes y no funcionar, de todas formas me parece genial que hayas realizado todos estos pasos y te felicito, aunque como te vuelvo a decir, no te puedo asegurar a ciencia cierta si todo está ok porque tendría que comprobarlo yo mismo ;)

      Saludos y mucha suerte con el entuerto!!

      Eliminar
  3. Anónimo09:07

    Imprimirlo está bien porque resulta que en el navegador del liveCD no tienes el marcador de la página donde encontraste la solución, cachis...
    Me tuve que ver tu video tres veces tomando notas hasta que acabé de pillarlo, jajaja...
    El último detalle de añadir el usuario al archivo sudoers es de mi cosecha y es imprescindible hacerlo si se quiere poder utilizar "sudo". (En mi caso, de tanto trastear, había llegado a eliminar el archivo sudoers, pffff...)

    El entuerto ya está arreglado. De nuevo gracias por todo.

    ResponderEliminar
    Respuestas
    1. Me alegro mucho!! Y muchas gracias a ti por aportar nuevas soluciones y dejar todo detallado en los comentarios, ya que esto le puede servir a otra persona que le suceda lo mismo! ;) Llevas razón en los dos casos, claro, el live cd está completamente limpio, no hay ningún historial de nada ni se va a guardar nada y en lo que respecta a lo de añadir la línea, una excelente idea, enhorabuena!! ;)

      Eliminar