sudo: ejecutar comandos con privilegios de root

Introducción

El comando sudo permite ejecutar un comando como el administrador del sistema (root). Este sistema es de uso obligatorio en Ubuntu o MacOS si se quiere realizar alguna tarea de administrador (apt-get, …). Resulta muy cómoda y “segura” ya que para realizar ciertas tareas simples de instalación/actualización del sistema no necesitamos arrancar un shell como root.

Mi distribución es Debian y en esta distro por defecto existe el usuario root y el usuario que se de de alta durante la instalación. Si queremos instalar un paquete, modificar el grub, o cualquier proceso que necesite privilegios de root necesitamos arrancar un shell como root o iniciar sesión como él. Si no somos expertos además de incomodo puede ser “peligroso”. Por eso configurar nuestro usuario con permisos para usar sudo puede resultar muy interesante.

Permitir el uso de sudo

En primer lugar (en mi caso, en Debian) arrancaremos un shell como root y ejecutaremos el comando:

# visudo

Este comando nos abre (con el editor por defecto: vi, nano, emacs) el fichero /etc/surdoers que por seguridad tiene los siguientes permisos:

$ ls -lh /etc/sudoers
-r--r----- 1 root root 723 jun 1 2012 /etc/sudoers

El comando visudo cambia los permisos y abre un editor con el fichero sudoers, pero además comprueba la integridad del mismo para evitar conflictos en el sistema. Hay que tener en cuenta que es un fichero “critico”. En mi caso el fichero sudoers es algo así:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification
# User alias specification
# Cmnd alias specification

# User privilege specification
miusuario    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Una vez guardado, nuestro usuario ya tendría privilegios de root y puede realizar cualquier tarea de administrador anteponiendo la palabra sudo. Por ejemplo, editar el fichero de fuentes para apt (la primera vez que ejecutemos sudo nos mostrará un mensaje como este, recordando que un gran poder conlleva una gran responsabilidad).

$ sudo nano /etc/apt/sources.lst 

We trust you have received the usual lecture from the local System Administrator.
It usually boils down to these three things: 

   #1) Respect the privacy of others. 
   #2) Think before you type. 
   #3) With great power comes great responsibility. 

Password:_

Referencias

  1. Página oficial de sudo: http://www.sudo.ws/
  2. Página man de sudo: http://www.sudo.ws/sudo/sudo.man.html
  3. Sudo en Wikipedia: http://es.wikipedia.org/wiki/Sudo
  4. Configuración de /etc/sudoers: http://www.rpublica.net/sudo/sudoers.html

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *