jueves, 18 de octubre de 2012

Instalar sudo y configurarlo para realizar tareas administrativas desde usuarios sin privilegios en Debian

Sudo es una programa a través del cual podemos lanzar comandos con privilegios de otros usuarios. Es muy flexible y nos permite tener control, además de otros aspectos, de los usuarios autorizados y las aplicaciones que puede lanzar cada usuario. Resulta muy practico para realizar ciertas tareas administrativas sin tener que cambiar continuamente de usuario y necesario para poder utilizar algunas aplicaciones gráficas como por ejemplo Multisystem o Truecrypt que lo usan para adquirir privilegios a la hora de realizar algunas tareas.

Hoy vamos a ver como podemos instalar sudo y configurarlo de forma básica para autorizar a usuarios y si quieres las aplicaciones que puede lanzar cada uno.


INSTALAMOS SUDO

Instalamos sudo en una consola o terminal logueado como administrador o root :
# apt-get install sudo


 CONFIGURAMOS SUDO

Una vez terminada la instalación de sudo vamos a configurarlo editando el archivo de configuración "/etc/sudoers". Es donde vamos a indicarle el/los usuario/s que vamos a autorizar, que aplicaciones vamos a permitir utilizar a cada usuario y como lanzarlas. Aunque tenemos muchas mas opciones que podemos configurar, hoy me voy a centrar en las necesarias para poder autorizar un usuario a realizar tareas administrativas. Simplemente vamos a añadir una linea con una normativa especifica para un usuario, pero si es necesario puedes añadir tantas lineas como necesites con diferentes normativas para cada usuario.

Breve explicación
Antes de añadir la linea con la normativa de uso para el usuario, vamos a hablar básicamente de su estructura para que cada uno pueda personalizar la configuración según sus necesidades. Podemos dividirla en 4 campos :

             1                     2                             3                               4
usuario_autorizado  host = (privilegios_de_que_usuario)   comando
  1. "usuario_autorizado" : Usuario al que vamos a autorizar el uso de sudo.
  2. "host" : IP o HOST desde el que queremos autorizar el uso de sudo.
  3. "privilegios_de_que_usuario" : Nombre del usuario del cual vamos a usar sus privilegios para lanzar el comando.
  4. "comando" : Aquí le indicarnos el/los comando/s que queremos autorizar y como lanzarlos.
Básicamente estos son los cuatro campos en los que se divide la linea. Cada campo se filtra con unas condiciones que indicamos como normas, si no cumple con todas las normas simplemente no se puede lanzar el comando. Si no queremos filtrar dejamos con el valor "ALL".

Vamos a ver algunos ejemplos de como podría ser la nueva linea con diferentes configuraciones :

Lo más común es querer añadir un usuario para realizar todas las tareas administrativas con el único requisito de verificar la identidad introduciendo la contraseña. En el primer campo escribiremos el nombre del usuario al que queremos permitir usar sudo el resto de los bloques los rellenamos con ALL para usar sin limitaciones. La linea añadir, sustituyendo "tuusuario" por el nombre de tu usuario, podría ser :
tuusuario ALL=(ALL:ALL) ALL
Si por ejemplo solo quieres autorizar al usuario "jose" para que pueda usar apt-get verificando la identidad con contraseña, la linea seria algo como :
jose ALL=(ALL:ALL) ALL:/usr/bin/apt-get
Si solo quieres que el usuario "luis" pueda actualizar el software del sistema sin pedir contraseña, la linea seria algo como (es todo una linea):
luis ALL=(ALL:ALL) NOPASSWD:/usr/bin/apt-get update,/usr/bin/apt-get upgrade
Ya se que no es una gran explicación, pero seguro que al que todavía no esté muy familiarizado con los archivos de configuración de sudo les podrá servir de forma orientativa.
Continuamos con lo practico

Tenemos que editar el archivo de configuración "sudoers". Yo uso nano. En una consola o terminal logueado como administrador o root :
# nano /etc/sudoers

Buscamos la linea
root ALL=(ALL) ALL

Y justo en la linea siguiente es donde tenemos que añadir la nueva linea de la que hemos estado hablando un poco mas arriba. Yo voy a usar la opción mas común, que es la que os va a servir a todos. Voy a autorizar a mi usuario para poder realizar cualquier tarea administrativa verificando la identidad con contraseña. La linea a añadir seria algo como (sustituye "imanol" por el nombre de tu usuario) :
imanol ALL=(ALL:ALL) ALL

Una vez realizados los cambios necesarios procedemos a guardarlos. Control+X para salir. Nos pregunta si queremos guardar los cambios, "S" para confirmar.


Nos pide verificar el nombre de archivo, ENTER para confirmar.


Y ya tenemos sudo instalado y configurado. Podemos cerrar la consola de root.


COMPROBAMOS SUDO

Para probarlo podemos lanzar una consola del usuario que acabamos de autorizar, podemos comprobar si podemos actualizar la lista de software disponible en los repositorios.
$ sudo apt-get update

Antes de lanzar el comando te pedirá la contraseña de tu usuario para verificar la identidad, lo que nos sirve para dar por valida la instalación y configuración de sudo.


Referencias :

1 comentario:

Ali dijo...

disculpa, yo hice todo como lo pusiste y aun asi no me deja, me dice que mi contraseña es incorrecta :(