En la entrada anterior di por supuesto que todo el mundo conocía el comando sudo, fallo mío. En esta entrada voy a explicar qué es y como se utiliza y así remediar este error.
El comando sudo, del inglés superuser do, es un comando que se utiliza para permitir a un usuario ejecutar programas y/o comandos con los privilegios de otro usuario, generalmente del usuario root (superusuario). El usuario root es el administrador del sistema, el que tiene acceso a todas las partes del sistema operativo y, por lo tanto, cuando se utiliza se debe saber qué se está haciendo en cada momento, no vaya a ser que destrocemos el sistema operativo y el ordenador quede inutilizado.
Este comando se utiliza en una ventana de terminal, que es la línea de comandos que se utiliza en GNU/Linux. A la terminal también se le denomina consola o intérprete de comandos. Aunque la mayoría de distribuciones de GNU/Linux, Ubuntu incluida, tienen soporte gráfico y muchos de los programas permiten la configuración utilizando aplicaciones gráficas, es imprescidible para el usuario de GNU/Linux conocer la consola y la forma de trabajar con ella.
![]() |
Terminal de GNU/Linux |
Se por experiencia que el usuario medio de ordenadores se siente intimidado a la hora de usar el intérprete de comandos. Ese, en mi opinión, es un miedo que hay que vencer y la mejor forma de hacerlo es empezar a usar la consola sin ningún tipo de prejuicio.
Cuando se utiliza el comando sudo, lo primero que hace el sistema es requerir la contraseña del usuario que lo está usando con el fin de autentificarlo (configuración por defecto). Una vez hecho esto, el sistema verifica si el usuario tiene permitida la ejecución del comando o programa que se intenta ejecutar. Para realizar esa verificación se miran las reglas contenidas en el fichero de configuración de sudo, el /etc/sudoers.
Una vez que el usuario se ha autentificado dispone de un período corto de tiempo en el que puede ejecutar el comando sudo sin que le sea requerida de nuevo la contraseña. En la configuración por defecto este período es de 15 minutos. Si se utiliza la opción -v, sudo amplia el tiempo de expiración otros 15 minutos, para lo cual requerirá la contraseña del usuario si es necesario.
Si un usuario que no está en el fichero sudoers intenta ejecutar un comando utilizando sudo, un correo se envía a la autoridad que se ha definido como tal a la hora de configurarlo o en el propio fichero sudoers (por defecto, root). Esto no se aplica si el usuario lanza el comando con la opción -l o -v, permitiendo al usuario determinar por sí mismo qué tiene permitido y qué no.
Los intentos con éxito y los fallidos, que son tratados como error, pueden quedar registrados por syslog (que es un programa de registro de actividad del sistema) o en un fichero de registro definido en el fichero sudoers, o bien por los dos a la vez. Por defecto sudo utiliza syslog.
Generalmente se ejecuta el comando sudo seguido del comando o programa que se quiere ejecutar con los privilegios de otro usuario (tal y como lo describo con los privilegios de root). Por ejemplo:
Si se van a realizar gran cantidad de tareas administrativas puede ser pesado el tener que escribir sudo precediendo cada comando. La opción -i permite entrar en una sesión de root con todos sus privilegios y variables de entorno, por supuesto, tras pedir la contraseña del usuario:
La edición del fichero sudoers nunca debe hacerse directamente con un editor de texto. Debido a lo delicado del tema de las autorizaciones (se puede, incluso, dejar inútil el sistema si este fichero queda mal), la edición de sudoers siempre se ha de hacer invocando la orden visudo.
Con esto acabo y, como siempre, espero que este artículo sirva de utilidad. Hasta pronto.
Una vez que el usuario se ha autentificado dispone de un período corto de tiempo en el que puede ejecutar el comando sudo sin que le sea requerida de nuevo la contraseña. En la configuración por defecto este período es de 15 minutos. Si se utiliza la opción -v, sudo amplia el tiempo de expiración otros 15 minutos, para lo cual requerirá la contraseña del usuario si es necesario.
Si un usuario que no está en el fichero sudoers intenta ejecutar un comando utilizando sudo, un correo se envía a la autoridad que se ha definido como tal a la hora de configurarlo o en el propio fichero sudoers (por defecto, root). Esto no se aplica si el usuario lanza el comando con la opción -l o -v, permitiendo al usuario determinar por sí mismo qué tiene permitido y qué no.
Los intentos con éxito y los fallidos, que son tratados como error, pueden quedar registrados por syslog (que es un programa de registro de actividad del sistema) o en un fichero de registro definido en el fichero sudoers, o bien por los dos a la vez. Por defecto sudo utiliza syslog.
Generalmente se ejecuta el comando sudo seguido del comando o programa que se quiere ejecutar con los privilegios de otro usuario (tal y como lo describo con los privilegios de root). Por ejemplo:
$sudo cp "nombre archivo" /etc
Esta orden copia el fichero "nombre archivo" al directorio etc en el que solo puede escribir el superusuario.
$sudo service samba restart
Esta otra orden reiniciaría el servidor samba, que es un servidor para la compartición de archivos y que sólo puede ser reiniciado por root.
Si se van a realizar gran cantidad de tareas administrativas puede ser pesado el tener que escribir sudo precediendo cada comando. La opción -i permite entrar en una sesión de root con todos sus privilegios y variables de entorno, por supuesto, tras pedir la contraseña del usuario:
$sudo -i
Existen multiples opciones que se pueden consultar en el manual que viene con toda distribución de GNU/Linux. Para consultar el manual de sudo hay que ejecutar en la consola la orden:
$man sudo
Es conveniente, cuando se utiliza cualquier comando de GNU/Linux, consultar la página del manual si se tiene alguna duda. La mayoría de las páginas del manual se encuentran traducidas al español; pero, con seguridad, más de una vez encontrarán que sólo están en inglés. Esto no debe desanimar al osado usuario de GNU/Linux, no es más que otro desafío.La edición del fichero sudoers nunca debe hacerse directamente con un editor de texto. Debido a lo delicado del tema de las autorizaciones (se puede, incluso, dejar inútil el sistema si este fichero queda mal), la edición de sudoers siempre se ha de hacer invocando la orden visudo.
$sudo visudo
Esta orden, además de la edición del fichero, comprueba la sintaxis antes de grabarlo, con lo que nos aseguramos que lo que se haya cambiado se ha hecho bien. El comando visudo abrirá el fichero sudoers con el editor de texto por defecto, en la versión de Ubuntu 11.10 este editor es el nano.Con esto acabo y, como siempre, espero que este artículo sirva de utilidad. Hasta pronto.
Comentarios
Publicar un comentario