May222011

Diferencia entre los comandos su y sudo.

Se ha escrito mucho sobre las diferencias entre los comandos su y sudo, a veces con demasiados tecnicismos, dificultando la comprensión a los recién llegados. Voy a intentar explicarlo de la forma más sencilla posible:

Ambos comandos nos permiten administrar el sistema otorgándonos privilegios de administrador (usuario root).

Si accedemos a root como:

su -c “comando

Se nos pide la contraseña correspondiente, y así cada vez. Lo malo es que no se guarda un registro de los comandos ejecutados, por lo que si rompemos el sistema sera más difícil su reconstrucción.

Si accedemos a root como:

sudo comando

Dicho comando permite durante un tiempo llamado “periodo de gracia”, el acceso root sin pedir la contraseña correspondiente. Durante ese tiempo se permitiría a cualquier usuario con solo teclear su contraseña, romper nuestro sistema. Eso es una verdadera brecha de seguridad, aun así, muchas distribuciones lo han incorporado por defecto, entre ellas Ubuntu. La razón es bastante sencilla, no todo son desventajas pues sudo guarda un registro de los comandos ejecutados, así si rompemos algo sera más fácil reconstruir el sistema.

Pero no se desanimen, hay una forma de resolver esa brecha de seguridad, se trata de deshabilitar el “periodo de gracia”, para ello solo hay que agregar una línea al final del archivo /etc/sudoers:

sudo nano /etc/sudoers

Y agregamos la siguiente linea al final del archivo:

Defaults:ALL timestamp_timeout=0

Sus efectos son inmediatos, no es necesario reiniciar.

Política de comentarios

Dada la importancia de los comentarios como espacio de participación, te pedimos por favor que leas detenidamente y cumplas con las siguientes normas de participación.

3 respuestas para “Diferencia entre los comandos su y sudo.

Mr. Brown Dispatcher

Hola:
Con la frase ‘Durante ese tiempo se permitiría a cualquier usuario con solo teclear su contraseña, romper nuestro sistema’ ¿a qué te refieres concretamente?
Soy usuario de GNU/Linux y no veo el agujero de seguridad al que haces referencia.
Por otro lado, al menos utilizando la shell Bash, al ejecutar comandos se va generando una histórico de los mismos en ~/.bash_history, lo que nos permitiría revisarlo para comprobar qué comando se ha ejecutado.

Gracias.


José Miguel

Saludos y bienvenido @Mr.Brown Dispatcher.
El solo hecho de que por un tiempo determinado el sistema permita derechos de root sin pedir la contraseña correspondiente, es un factor de riesgo y técnicamente se le puede considerar un fallo de seguridad, otra cuestión es el riesgo real.
La seguridad siempre es un factor importante, y “cada día” vemos como rompen sistemas que en principio se suponían seguros. Por otro lado, la prevención es algo importante, y si algo se puede mejorar, no veo que puede tener de malo.
Sobre el “periodo de gracia” puede hacer usted diferentes consultas y vera que es algo real.
Sobre las comprobaciones… en el supuesto caso de una amenaza real ¿llegarías a tiempo?


Deja un comentario

Tu dirección de correo electrónico no será publicada.