Ubuntu

Soporte

COMO: Configurar sudo

Como sabemos, la orden sudo (tan particular de Ubuntu), nos permite ejecutar comandos como root en nuestro sistema, sin necesidad de estar logueados como tal, basta con solo ejecutar la orden sudo [comando], para comprobarlo.
El comando sudo funciona preponiendolo delante de la ordén, y la primera vez que lo ejecutemos nos pedira nuestra clave de usuario (no la de root), logueando todo lo que hemos ejecudo con el, y residiendo la contraseña en memoria durante quince minutos (estos son valores por defecto de Ubuntu).
Respecto a los usuarios que pueden utilizar sudo en nuestro sistema, sabemos que quien tiene mayores privilegios en el sistema es aquel que fue creado en el momento de la instalación, los que se creen despues, tendran menos privilegios.
Basta con decir que tales privilegios esta dado por el archivo /etc/sudoers que es perfectamente configurable a nuestras necesidades.
Entre las cosas que podemos hacer es que en vez de pedir la contraseña de usuario pida
la de root, si nos equivocamos la clave nos insulte sutilmente =), que no resida dicha
clave en memoria, etc.

Como hemos dicho antes el archivo sudoers se encuentra en el directorio /etc/sudoers,
pero todavia no lo abramos, ya que nuestro flamente Ubuntu trae una herramienta llamada visudo diseñada exclusivamente para editar este archivo.
Asi que en una shell o consola escribiremos.

$: sudo visudo

Y se nos abrira GNU nano, el editor de Ubuntu, pero con una aplicación especial para editar sudoers.
Por defecto, veremos unos pocos parámetros activados o desactivados, y cómo dan privilegios a nuestro usuario y al grupo admin. Vamos por orden.

ESTRUCTURA

El /etc/sudoers se divide en tres grandes grupos:

  • Definiciones de alias
  • Ajuste de opciones por defecto
  • Reglas de acceso

En este tutorial, (en esta actual revisión), nos vamos a centrar en el segundo item (Ajuste de opciones por defecto), a continuación veeremos un ejemplo del archivo /etc/sudoers

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults

Defaults !lecture,tty_tickets,!fqdn

# User privilege specification
root ALL=(ALL) ALL

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

Normalmente, los parámetros tienen un tipo. En este caso, todos se tratan como booleanos.
Como dijimos, vamos a trabajar en "Ajuste de opciones por defecto", bien, la linea que nos interesa es la siguiente:

Defaults !lecture,tty_tickets,!fqdn

Vamos a dividirla en dos partes la primera definición del host y la segunda parametros de configuración por lo tanto Defaults=Definición del host y !lecture,tty_tickets,!fqdn=Parametros de configuración.
Lo primero que vamos a hacer, por una cuestión de seguridad es que sudo unicamente sea ejecutado por nuestra maquina y por nuestra IP (o nombre de host), para ello a la ya mencionada linea le agregamos @IP o @hotname, quedaria de la siguiente forma:

Defaults@192.168.1.2 !lecture,tty_tickets, !fqdn

NOTA: Suponiendo que nuestra dirección de IP es 192.168.1.2 (remplazar por su dirección de IP)

O podemos poner el nombre de host en vez de nuestra IP, quedaria asi:

Defaults@hostname !lecture,tty_tickets, !fqdn

Bien, ahora ya tenemos un poco mas de seguridad, pero, deberiamos agregar algunas opciones mas para configurarlo. Este es solo un ejemplo pero agregaremos estas:

Defaults@192.168.1.2 !lecture,tty_tickets, !fqdn,passwd_tries=2

Bien, si prestamos atención, en la segunda parte, le hemos añadido el parametro passwd_tries=2.
Como sabemos sudo, nos permite realizar un máximo de 3 intentos de escribir la contraseña, si nos equivocamos, nos vuelve al prompt del sistema. Con este parametro, el numero de intentos quedara en dos.

Ahora vamos añadirle que en vez de pedir la contraseña del usuario, nos pida la de root, para ello agregamos el parametro rootpw, quedaria asi:

Defaults@192.168.1.2 !lectura,tty_tickets, !fqdn,passwd_tries=2,rootpw

Si no tenemos la cuenta de root activada (en Ubuntu por defecto viene desactivada), debemos habilitarla de la siguiente manera tipeando en una shell este comando:

$: sudo passwd root

Y alli, le establecemos una buena contraseña que se nos pedira dos veces para evitar errores.

PARAMETROS DE CONFIGURACION

  • lecture=Este parametro ya se encuentra incluido y nos pregunta si deseamos que nos imprima un mensaje como este cuando usemos la orden sudo

    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.

    Sus opciones de configuración son:
    lecture=never --> Aqui nuca imprime el mensaje.
    lecture=once ---> Aqui lo imprime la primera vez que usamos sudo en la sesión.
    lecture=always--> Aqui lo imprime cada vez que utilizamos sudo

  • insults=Esta opción, si que es curiosa lo que hace es que si nos equivocamos la password nos responda con un sutil insulto (en Inglés), pruebenlo, que es divertido :).
  • mail_badpass= Envia un correo electronico al administrador del sistema cada vez que un usuario escribe una contraseña incorrecta.
  • rootpw= Como ya vimos esta opción pide la clave de root en lugar de la del usuario.
  • passwd_tries= Indica el numero de veces que un usuario puede intentar escribir una contraseña. Su uso es el siguiente:

    passwd_tries=n

    Donde n seria el numero de veces que ese usaurio puede intentarlo.
  • timestamp_timeout= Es el tiempo que pasa (en minutos) desde que el usuario introduce la constraseña, hasta que debe introducirla otra vez. Por defecto son quince minutos, que deben pasar antes de que la vuelva a pedir. Su modo de uso:

    timestamp_timeout=n

    Donde n es el tiempo (en minutos), dejar en 0 para que la pida siempre que utilizemos
    sudo

Un ejemplo de estos valores seria mi /etc/sudoers donde lo tengo configurado de la siguiente forma:

Defaults@192.168.1.2 !lecture,tty_tickets,!fqdn,insults,rootpw,timestamp_timeout=0,lecture=once,passwd_tries=2

Una vez que terminamos de editar todo, guardamos (Ctrl + O) y salimos (Ctrl + X).

SUDO SIN CONSTRASEÑA

Si deseamos que sudo nunca nos pida la contraseña, tenemos muchas formas de hacerlo, en la que les explicare aqui debemos ir al archivo /etc/group
abrirlo con nuestro editor de texto favorito, y agregar a el usuario al grupo sudo.
Este archivo, guarda la configuración sobre que usuario pertenece a tal grupo, vamos a encontrar muchos grupos en este archivo (muchos son del sistema, no nos alarmemos), por lo cual recomiendo modificar solo lo que explico aqui, en una consola ejecutamos:

$:sudo nano /etc/group

Buscamos el grupo sudo y encontraremos algo como esto:

sudo:x:27:

Si queremos explicar un poquito el significado de esta linea podemos decir que sudo, es el nombre del grupo,x seria la contraseña encriptada y 27, seria el GID (Group ID), osea el numero que identifica a el grupo, luego de los siguientes : irian los usuarios que pertencen a ese grupo por lo cual alli agregamos a nuestro usuario y nos deberia quedar asi:

sudo:x:27:usuario

Guardamos los cambios (Ctrl + O) y salimos (Ctrl + X), salimos ejecutamos sudo y listo!.

Overclock_Orange
fmdlc.unix@gmail.com