miércoles, 3 de diciembre de 2008

SUDO


El pasado jueves Yesid me pregunto sobre un comando que ha encontrado varias veces en algunas páginas que hablan sobre Linux : "sudo"
Lo del programa SUDO (porque es un programa y no un comando) es una de las cosas mas interesantes de Linux y a la vez una de las que mas tiempo me llevo entender.
La palabra SUDO viene de las siglas en inglés de superuser -o substitute user- do. Esta es una utilidad de los sistemas todos operativos tipo Unix, como Linux, BSD, o Mac OS X, El programa SUDO permite a los usuarios ejecutar programas con los privilegios de seguridad de superusuario (llamado normalmente usuario root) de manera segura.
Ahora, la cosa del usuario root es bastante interesante en si misma y es una de las principales diferencias en seguridad con sistemas windows y una de las mayores fortalezas de Linux. Sucede que existen varios tipos de usuarios del sistema, dependiendo como se configuran los accesos y los permisos, pero para ejecutar programas que puedan afectar la configuración del sistema hay que iniciar sesión como usuario root. La idea de este procedimiento es que cualquier cambio que pueda afectar el sistema sea exclusivamente decisión de un ser humano. Esta situación es una de las principales razones por las que en linux no hay virus, porque para que algún virus haga algo significativo en el sistema debe tener privilegios administrativos de usuario root, los cuales están protegidos con contraseña. Vale la pena decir que muchos de los virus que atacan en Windows entran porque no se cambia el nombr de usuario "administrador".

Idealmente no se debe  iniciar sesión siempre como usuario "root", sino con el usuario personal (en mi caso el usuario es "daniel") aunque no se tengan los privilegios completos y que cuando se necesite hacer alguna tarea administrativa, para evitar reiniciar el equipo se usa el programa sudo. En palabras técnicas "Sudo permite implementar un control de acceso altamente granulado de que usuarios ejecutan que comandos. Si un usuario normal desea ejecutar un comando de root (o de cualquier otro usuario), sudo verifica en su lista de permisos y si está permitido la ejecución de ese comando para ese usuario, entonces sudo se encarga de ejecutarlo. Es decir, sudo es un programa que basado en una lista de control (/etc/sudoers) permite (o no) la ejecución al usuario que lo invocó sobre un determinado programa propiedad de otro usuario, generalmente del administrador del sistema 'root'." Fuente manual de sudo, visdudo y sudoers

Y cuando se usa el SUDO?

Cuando al aplicar un comando en terminal el sistema dice que no se tienen los privilegios administrativos necesarios. Primero se escribe sudo y luego se escribe la orden o programa que se quiere ejecutar e inmediatamente el sistema pregunta por la contraseña de root. Mas o menos así:

$ sudo /sbin/ifconfig
Password: ********************
eth0 Link encap:Ethernet HWaddr 4C:00:10:60:5F:21
  inet addr:200.13.110.62 Bcast:200.13.110.255 Mask:255.255.255.0
  inet6 addr: fe80::4e00:10ff:fe60:5f21/64 Scope:Link

Sudo tiene realmente mucha tela que cortar en cuestiones de configuración y en cuestiones de seguridad, pero es necesario recalcar que el usuario standard simplemente debe escribir 

sudo orden (enter) y luego el password. (exactamente como esta explicado en la ilustración)

Espero que esto conteste a la pregunta de Yesid pero si aun hay preguntas puedes ver la página oficial de sudo:

http://www.sudo.ws/ 



No hay comentarios: