jueves, 16 de agosto de 2012

Usando sudo

Sudo - Descripción de la herramienta

Es una utilidad GNU muy versátil que permite a un usuario común (sin privilegios)  correr comandos como si fuera root u otro usuario.
La configuración de sudo se guarda en /etc/sudores y este archivo se modifica mediante el comando visudo. Podemos invocar a este comando ya sea como root o mediante sudo visudo

[hmartine@infraUX ~]$ sudo /usr/sbin/visudo
[sudo] password for hmartine:

Para listar los contenidos del sudoers sin comentarios, ni blancos para poder visualizarlo mas facil corremos el comando que vemos abajo

[root@infraUX ~]# cat /etc/sudoers |grep -v "^#" |grep -v "^$"
User_Alias ADMINS = hmartine, dmelo
root    ALL=(ALL)      ALL
ADMINS  ALL=(ALL)      ALL


En el ejemplo de arriba se creo un alias, el cual funciona como un contenedor al que se le asignaron los usuarios hmartine y dmelo. Luego tanto al usuario root como al grupo ADMINS se les otorga permisos para que ejecuten desde cualquier terminal, como cualquier usuario cualquier comando.

Para poder ver que comandos puedo correr con mi usuario debo correr el comando sudo -l



[hmartine@infraUX ~]$ sudo -l
[sudo] password for hmartine:
Matching Defaults entries for hmartine on this host:
    requiretty, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC
    KDEDIR LS_COLORS MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE
    LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME
    LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS
    _XKB_CHARSET XAUTHORITY"

Runas and Command-specific defaults for hmartine:


User hmartine may run the following commands on this host:
    (ALL) ALL

Una forma mas segura de usar sudo es explicitar específicamente los comandos que queremos usar.


La ventaja principal de usar sudo es la de tener trazabilidad y control acerca de los comandos que se ejecutan como root.