viernes, 5 de junio de 2009

CONFIGURAR SUDO CON VISUDO

sudo es un comando que permite a un usuario normal poder ejecutar comandos de root.
Hay que añadir al usuario en un archivo, el archivo en cuestion es sudoers y se encuentra en /etc/sudoers.
Se edita con visudo, Y visudo no permite cerrar el archivo con errores.
Visudo te abrira tu editor de textos por defecto, si quieres cambiarlo por otro como vi por ejemplo que lo vas a encontrar en todas las distribuciones tendrias que ejecutar:

update-alternatives --config editor


En esta imagen se ve que tengo seleccionado el editor de textos nano.


En la imagen de abajo vemos como se le a otorgado al usuario david ejecutar como root el comando id y solo tendria permiso para ejecutar ese comando.
con whereis comando vemos la ruta del comando, en este caso whereis id nos dio /usr/bin/id


y si se le pone un comando con parametros solo podria ejecutar ese comando con los parametros marcados, con NOPASSWD hacemos que no nos pida la contraseña del usuario.



En este ejemplo de arriba solo podra ejecutar el apt-get update, pero no podra ejecurar el apt-get upgrade o el apt-get install, es util si queremos que solo pueda actualizar pero no instalar nada, si solo estaria " david ALL = /usr/bin/apt-get " el usuario david podria ejecutar cualquier opcion del comando como install, upgrade, o remove.

Se pueden añadir tantos comandos y usuarios como queramos.

Hay que tener mucho cuidado con que comandos se permiten usar, Por que aveces un comando inofensivo tiene otras opciomes que permiten tomar el control de la maquina, Y no es eso lo que queremos.

Vamos con un ejemplo.

Vi en principio es un editor de textos, no parece tener gran riesgo para la seguridad, no? Pues si añadimos vi a un usuario normal en el archivo sudoers este usuario podra tomar el control total de la maquina, ya que vi aparte de editar textos tambien permite introducir comandos, Y con introducir sh un usuario normal tendra una consola de root, vamos a verlo.

Con esto el usuario david tiene permisos para ejecutar el editor de textos vi como root.


Ahora ejecutamos vi

sudo vi

Se nos abre una ventana de edicion de texto de vi y con este simple comando (:! /bin/sh) ejecutariamos una consola como root.




Como vemos en la imagen de abajo, tenemos el prompt de root, el udi de root, el gid de root...vamos que somos root.



Con esto intento decir que hay que tener mucho cuidado con que comandos permitir a los usuarios.No se debe dejar mas de lo necesario y es mas conveniente añadir solo los parametros que el usuario va a necesitar,
Si queremos que un usuario pueda copiar un directorio a una particion de raiz en la que se hace backup para que no pierda archivos importantes no debemosdarle en el archivo sudoers permiso para ejecutar cp si no para ejecutar cp de determinado directorio a otro, Este seria un ejemplo a poner en el archivo sudoers:

david ALL = /bin/cp /home/usuario /backup

Con eso solo podra copiar de su directorio de usuario a un directorio que se llama backup que esta en el raiz.

1 comentario: