sudo

sudo (SUperuser DO) es una herramieta que permite otorgar a un usuario o grupos de usuarios normales, permisos para ejecutar algunos comandos como root (o como otros usuarios) sin necesidad de conocer su password. Es posible que no esté instalado en tu distribución de Linux y tengas que instalarlo tú. En capítulos posteriores tienes información sobre cómo instalar software adicional en el sistema.

El fundamento de sudo reside en su fichero de configuración, el fichero /etc/sudoers. Este fichero tiene, en los casos más sencillos, dos partes: una parte de alias y otra parte de reglas. La parte de alias, lo que hace es "agrupar" de alguna manera listas de usuarios y listas de aplicaciones (incluso listas de máquinas de una red, pero esto es más específico y no lo explicaremos aquí). La parte de reglas define qué grupos de usuarios pueden usar qué grupos de programas con permisos distintos de los suyos y en qué condiciones pueden hacerlo. Un fichero sencillo que nos podría servir podría ser como:

#
# Parte de alias
#

Cmnd_Alias GRABAR = /usr/bin/cdrecord, /usr/bin/cdrdao
Cmnd_Alias APAGAR = /sbin/halt, /sbin/reboot

User_Alias USERSGRAB = usuario1, usuario2

#
# Parte de reglas
#

USERSGRAB	ALL = NOPASSWD: GRABAR

%cdrom		ALL = NOPASSWD: GRABAR
%apagar		ALL = NOPASSWD: APAGAR
		

Esto con respecto al fichero /etc/sudoers. En la parte de alias, Cmnd_Alias indica una lista de comandos (programas) que serán luego referidos mediante el nombre que le demos (asginar alias aquí tiene similitud con asignar variables de entorno en el shell). User_Alias agrupa a una lista de usuarios bajo un mismo nombre (en nuestro caso USERSGRAB).

En cuanto a la parte de reglas, primero se especifican los usuarios (puede ser un alias definido anteriormente como en el primer caso, o bien puede ser un grupo de usuarios del sistema, precediendo su nombre por %), el ALL que sigue hace referencia a en qué máquinas podrán hacer esto, y el NOPASSWD: indica que lo harán con permisos de root y sin necesidad de teclear su password. Después viene el alias con los comandos que podrán ejecutar en las condiciones que hemos dado.

Recuerda que el fichero /etc/sudoers se edita con el comando visudo, por razones de seguridad, y como root. sudo no altera la estructura de permisos del sistema de ficheros de Linux, es decir, por muchos cambios que hagamos en el fichero de configuración de sudo, los permisos de los programas seguirán siendo los mismos. La diferencia está en que estos "permisos especiales" que estamos otorgando a algunos usuarios se aplican cuando el programa que se quiere ejecutar se llama mediante sudo; así, un usuario que quiera ejectar el programa cdrdao con estos permisos especiales deberá hacerlo así:

$ sudo cdrdao [opciones]
		

Esto es lo más básico que necesitas saber sobre sudo para ejecutar algunos comandos cómodamente como usuario normal al tiempo que mantienes la seguridad del sistema. sudo es una herramienta que permite configuraciones mucho más complejas que las que hemos visto aquí; siempre puedes leer sus páginas del manual del sistema (man sudo y man sudoers), o visitar su página web.