Su vs. Sudo

Parece que algunas distribuciones de linux tienden a usar la orden ‘sudo’ en vez de la tradicional ‘su’ para ejecutar programas en modo supervisor. Lo que mucha gente no sabe, es que son órdenes diferentes. Si desconocemos esas diferencias, podríamos obtener resultados inesperados.

La orden sudo es perfecta para dar acceso root a un usuario específico de forma que pueda hacer lo que quiera sin dar la password de administrador.

La orden su da acceso a un usuario con los privilegios de otro. Generalmente se usa para que esos privilegios sean los del root, pero no tiene por qué ser así. Es una orden útil, por ejemplo, para que el administrador de sistema utilice los privilegios de un usuario concreto para ejecutar un programa con el que ese usuario tiene una incidencia. Por ejemplo, supongamos que queremos probar a ejecutar crontab como un usuario llamado sergio:

su sergio -c “crontab -e

Esto quizás te haga pensar que se pueden usar indistintamente, pero hay una diferencia sutil: la orden su te permite ejecutar un programa con privilegios de usuario, pero en ningún momento dejas de utilizar tu propio usuario. Esto implica que las variables de entorno activas serán las de TU usuario y no las del root.

Si no conocías esta sutil diferencia, quizás te puedas poner a pensar en algún comportamiento extraño que te ha sucedido en el pasado utilizando esta orden: seguramente aquí esté la respuesta. 🙂

¿Y cómo poder abrir un X terminal en modo root directamente desde el escritorio del usuario?

Símplemente añade ‘-‘ al comando su. Es equivalente a usar la opción –login, solo que más fácil de escribir. Esto te dará un entorno 99% root.

Otra cosa que tienes que tener en cuenta, es la ejecución de programas gráficos. A veces, habrás obtenido errores relacionados con un DISPLAY no configurado. Para ello, lo mejor es usar xhost (o algo equivalente).

Personalmente, lo que he hecho es instalar un paquete llamado sux. Es una orden equivalente a su, pero que antes de ejecutarse arranca el entorno X y hace posible ejecutar programas sin obtener esos errores:

sudo apt-get install sux

Ojo con la seguridad

Muchas distribuciones atribuyen a sudo una propiedad llamada “período de gracia”. Esto es, un período temporal durante el que no hay que volver a introducir la contraseña. Pero esto podría constituir un agujero de seguridad: imagínate que alguien utiliza tu ordenador durante ese “período de gracia”. Para desahabilitarlo, puedes editar el fichero /etc/sudoers:

Primero añade esta línea en cualquier parte del archivo…

sudo nano /etc/sudoers

…y después esta línea al final del archivo:

Defaults:ALL timestamp_timeout=0

No hace falta reiniciar ni nada, los cambios tienen lugar de manera inmediata.

No se si esta entrada te ha parecido muy obvia, o te revela facetas de este comando que desconocías. Si es así, y te ha gustado, te animo a que lo compartas con los botones que hay aquí abajo. 😉