SDB:Configurar sudo y administrar el sistema con él
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).
Contenido
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:
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 -
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íneaDefaults env_keep =
(dentro de las comillas).
- Añadir la línea
Defaults editor = "/usr/bin/gedit:/usr/bin/joe"
, cambiandogedit
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), cambiandogedit
por el editor gráfico que se quiera.