SDB:Configurar sudo y administrar el sistema con él

Saltar a: navegación, buscar
openSUSE, al igual que la práctica totalidad de distribuciones GNU/Linux, conciencia desde el principio a los usuarios sobre la necesidad de no utilizar el sistema con privilegios de administrador (al que se llama root). Además, se recomienda el uso del comando sudo para ejecutar comandos. Esto es más seguro porque se puede seleccionar qué comandos puede ejecutar un determinado usuario o grupo de usuarios, y también porque la ejecución de dichos comandos con sudo queda registrada en el archivo /var/log/messages (aunque también se tiene la opción de elegir el archivo donde se hará el registro).

Configuración de sudo

En openSUSE, sudo se instala de forma predeterminada, pero no se configura por defecto. Para poder usarlo los usuarios han de introducir la contraseña del administrador. Esto implica, naturalmente, que cualquier usuario puede ejecutar sudo si conoce la contraseña del administrador del sistema.

Desde el punto de vista de la seguridad, no es una buena práctica que los usuarios conozcan la contraseña del administrador, lo cual es más importante si cabe en sistemas compartidos por varios usuarios, aunque no está de más hacerlo también aunque se sea el único usuario del sistema. Este es el motivo para realizar la configuración de sudo.

Para permitir el uso de sudo a una cuenta de un usuario se debe editar el archivo /etc/sudoers desde una terminal:

sudo /usr/sbin/visudo

desde la que también se puede lanzar un editor de texto gráfico si resulta más cómodo, en cuyo caso la orden depende del escritorio que se esté usando:

  • en los escritorios GNOME, LXDE y Xfce (cambia gedit por leafpad si usas LXDE o Xfce)
EDITOR=gedit gnomesu /usr/sbin/visudo
  • en el escritorio KDE
EDITOR=gedit kdesu EDITOR=kate visudo

Como cuando hagas esto sudo estará aún sin configurar, así que debes introducir la contraseña de administrador.

Permitir el uso de sudo a los usuarios

Una vez que has ejecutado alguno de los comandos comentados antes para abrir el archivo /etc/sudoers, lo siguiente que tienes que hacer es buscar la línea que comienza por #%wheel, donde el prefijo % de wheel indica que wheel es un grupo (se pueden ver los grupos que hay definidos en el sistema con la orden cat /etc/group).

En vez de añadir uno a uno a los usuarios que puedan usar sudo, es más sencillo permitírselo a todos los usuarios que pertenezcan al grupo wheel. El # al principio de una línea la convierte en un comentario, esto es, una línea que se ignora por completo como si no existiera. Por tanto, para que se tenga en cuenta hay que eliminarlo y dejar la línea como sigue:

%wheel        ALL=(ALL)       ALL

Guarda y cierra el archivo. Si lo has editado con sudo /usr/sbin/visudo hazlo mediante esta secuencia de comandos:

:wq

Los dos puntos que aparecen al principio sirven para que wq sea interpretado por el editor por defecto (vim) como una orden, guardar y salir en este caso. Si lo has editado mediante gedit o KWrite, hazlo de la manera habitual en un editor de textos gráfico.

A continuación hay que denegar a todos los usuarios la posibilidad de ejecutar sudo, salvo a aquellos a los que se establezca que lo pueden hacer (añadiéndolos más tarde al grupo wheel). Para esto hay que convertir en comentarios las siguientes líneas, añadiendo el símbolo # al principio de la línea.

#Defaults targetpw    # ask for the password of the target user i.e. root
#ALL ALL=(ALL) ALL # WARNING! Only use this together with 'Defaults targetpw'!

Guarda y cierra el archivo. Por último, añade el nombre del usuario o usuarios que desees al grupo wheel. Ejecuta el siguiente comando una vez por cada usuario que quieras añadir al grupo, cambiando cada vez nombre_de_usuario por el usuario al que quieras agregar.

su -c "/usr/sbin/usermod -G wheel nombre_de_usuario"

Si se prefiere, también se puede hacer esto último de forma gráfica con el módulo de YaST Gestión de usuarios y grupos. Para que los cambios tengan efecto es necesario reiniciar, o bien cerrar y volver a iniciar sesión. Es por eso que en este último comando se usó el comando su en lugar de sudo. A partir de ese nuevo inicio, cuando se ejecute sudo se utilizará la contraseña del usuario que lo invoque, en lugar de la del administrador del sistema.

Ejecutar aplicaciones gráficas con permisos de administrador

Si quieres ejecutar un programa con de interfaz gráfica, como por ejemplo KWrite para editar un archivo, el método más cómodo es pulsar Alt+F2 y escribir en el diálogo que aparece lo siguiente, dependiendo del escritorio que se use:

  • en los escritorios GNOME, LXDE y Xfce (cambia gedit por leafpad si usas LXDE o Xfce)
gnomesu <comando>
  • en el escritodio KDE
kdesu <comando>

donde <comando> es el nombre del programa que se quiera ejecutar. En caso de que no funcione así, prueba a usar la ruta completa al archivo ejecutable. En GNOME también se puede ejecutar el siguiente comando en una consola:

xhost +; sudo gedit --display=:0; xhost -

Los comandos que pueden ejecutar los usuarios normales están en /usr/bin, así que para ejecutar KWrite, por ejemplo, se usaría como ruta /usr/bin/kwrite. Ten cuidado al escribir cualquier orden ya que siempre se distinguen las letras minúsculas de las mayúsculas.

Knotes 128x128.png

Este método se puede usar incluso para ejecutar visudo, pero hay que cambiar ligeramente las órdenes por:

  • en los escritorios GNOME, LXDE y Xfce (cambia gedit por leafpad si usas LXDE o Xfce)
bash -c "EDITOR=gedit gnomesu /usr/sbin/visudo"
  • en el escritorio KDE
EDITOR=kate kdesu visudo

Por comodidad, se puede modificar de nuevo el archivo /etc/sudoers si se ejecutan con frecuencia programas con interfaz gráfica desde la consola para poder hacerlo con sudo. Los pasos a seguir son los siguientes:

  • Abrir el archivo /etc/sudoers como se aprendió antes.
  • Añadir EDITOR VISUAL DISPLAY XAUTHORITY a la línea Defaults env_keep = (dentro de las comillas).
  • Añadir la línea Defaults editor = "/usr/bin/gedit:/usr/bin/joe", cambiando gedit por el editor gráfico que se quiera (kwrite en KDE, por ejemplo).
  • Añadir [ $DISPLAY ] && export VISUAL="gedit" || export EDITOR="joe" al nuestro archivo ~/.bashrc (~ es una forma abreviada de hacer referencia a nuestro directorio de usuario), cambiando gedit por el editor gráfico que se quiera.

Enlaces externos