En cualquier sistema Linux el grupo sudoers es un grupo de usuarios a los que se les otorga la posibilidad o habilidad de convertirse en usuario root durante la ejecución de algunos comandos. Este es un punto fuerte en la seguridad pasiva de los sistemas basados en Unix. No es necesario disponer de todos los privilegios de root, sino que simplemente con el echo de poder ejecutar algunos comandos en su nombre, podemos conseguir que la seguridad de nuestro sistema no se vea comprometida de manera permanente.
Básicamente, lo que un usuario sudoer puede hacer es, mediante la anteposición del comando sudo a la orden deseada, ejecutar dicha orden en nombre de root.
sudo
SuperUser DO an action
Veamos un pequeño ejemplo.
En este primer caso, ejecutamos el archiconocido apt-get update, que como es lógico, espera permisos de root:
pi@raspberrypi ~ $ apt-get update E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied) E: Unable to lock directory /var/lib/apt/lists/ E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
Como vemos, el usuario pi no tiene permisos para la ejecución de dicho comando. Recordemos que es una acción muy importante, que puede modificar el estado del equipo, y por ese motivo solo puede ejecutarlo un usuario root.
Veamos qué sucede si lo hace un usuario con capa de root:
pi@raspberrypi ~ $ sudo apt-get update Hit http://archive.raspberrypi.org wheezy Release.gpg Hit http://archive.raspberrypi.org wheezy Release Hit http://raspberrypi.collabora.com wheezy Release.gpg Get:1 http://mirrordirector.raspbian.org wheezy Release.gpg [490 B] ...
Bien, claramente observamos la diferencia: el sistema otorga permisos de root (sudo) y ejecuta el comando. En este caso no se solicita password al usuario, ya que se le ha concecido pleno derecho a hacerlo (lo veremos mas abajo).
Añadiendo usuarios al grupo sudoers
Para empezar, es necesario incluir el usaurio deseado en el listado de usuarios sudoers, o lo que es lo mismo, con permisos de root. Esto se debe hacer, SIEMPRE, mediante el comando visudo, ya que es una versión de nano que aplica los cambios y reinicia el servicio al mismo tiempo. También realiza comprobaciones antes de guardar el fichero, y si existen errores, nos preguntará qué queremos hacer.
El fichero que editaremos es
/etc/sudoers
No editéis el fichero a mano, ya que es posible que suframos daños irreparables… (antes de seguir es recomendable realizar una copia del fichero…).
Edición:
pi@raspberrypi ~ $ sudo visudo
Añadimos al final del fichero el nuevo usuario del grupo. En mi caso, lo que he hecho ha sido crear un nuevo usuario, jordi, para dejar de seguir utilizando pi, que es el que viene por defecto.
pi ALL=(ALL) NOPASSWD: ALL jordi ALL=(ALL) NOPASSWD: ALL
Según la línea añadida, le indicamos a sudo que debe reconocer a jordi como usuario sudoer.
Una vez hecho esto, guardamos y salimos con Ctl+X (como en nano).
Una vez el proceso se haya finalizado, lo que haré será volver a editar este fichero y dejar comentada la línea que hace referencia al usuario pi. De este modo, pi ya no podrá hacer sudo, y añadiremos un nivel mas de seguridad a nuestro sistema, ya que se trata del usuario por defecto, y a “muchos” se les puede ocurrir hacer login con el mismo…
A partir de este momento, el usuario jordi pertenece a sudoers y puede ejecutar comandos root, con restricciones.
Con sudo es posible realizar otras muchas operaciones, como listar comandos ejecutados, ejecutar comandos de otros usuarios, etc.. Si queréis profundizar un poco mas, os recomiendo un artículo que está bastante bien escrito y es muy entendible: http://www.linuxtotal.com.mx/?cont=info_admon_014
Espero que os haya parecido interesante.
Jordi