Ir al contenidoIr a la navegación de la página: página anterior [tecla de acceso p]/página siguiente [tecla de acceso n]
documentation.suse.com / Configuración de privilegios de superusuario con sudo

Configuración de privilegios de superusuario con sudo

Fecha de publicación: 12 Dic 2024
DESCRIPCIÓN

Familiarícese con los conceptos básicos de la configuración de sudo y aprenda a delegar privilegios de superusuario con sudo.

INTENCIÓN

Algunos comandos requieren privilegios de administrador o de root. Mediante sudo, puede delegar los privilegios para ejecutar estos comandos a determinados usuarios o grupos.

ESFUERZO

Leer este artículo le llevará unos 20 minutos. Escribir la primera regla de configuración de sudo solo lleva unos minutos, pero establecer una configuración de sudo que funcione en todo el entorno llevará mucho más tiempo, dependiendo de la complejidad de la configuración.

OBJETIVO

Comprender los aspectos básicos de la configuración de sudo. Abordar casos de uso comunes para la configuración de sudo. Aprenda a trabajar con usuarios, grupos de usuarios y alias en las configuraciones de sudo. Familiarícese con las mejores prácticas de sudo y la resolución de problemas.

REQUISITOS

1 Introducción a la configuración de sudo

sudo proporciona un medio para delegar de forma segura y eficaz privilegios de superusuario a usuarios o grupos específicos.

Ciertas operaciones de un sistema Linux requieren privilegios de root o de administrador. Los usuarios domésticos que administran su propio sistema no tienen que delegar privilegios de superusuario, ya que el administrador y el usuario normal son la misma persona. Pero tan pronto como un sistema forma parte de un entorno de sistemas más grande con varios usuarios, grupos y hosts, es vital mantener el control de quién puede hacer qué y dónde. Al mismo tiempo, es importante proporcionar a todos los usuarios y grupos los privilegios necesarios para llevar a cabo sus tareas.

sudo está diseñado para ayudar con esto. Proporciona:

Seguridad del sistema mejorada

sudo ofrece un control detallado de los usuarios, grupos, hosts y comandos y, por lo tanto, aumenta la seguridad del sistema al reducir el riesgo de daños malintencionados o accidentales por parte de un intruso o un usuario del sistema.

Seguimiento de auditoría completo

Cada vez que un usuario cambia los privilegios, esto aparece en el registro del sistema y todas las operaciones llevadas a cabo por ese usuario con privilegios elevados se pueden rastrear hasta él.

Un medio para delegar tareas específicas de root

Con sudo, los administradores del sistema pueden permitir que usuarios individuales o grupos lleven a cabo determinadas tareas sin necesidad de introducir la contraseña de root ni de cambiar a la cuenta de root.

Importante
Importante: cómo leer este artículo

Este artículo proporciona información detallada sobre la configuración de sudo. Sin embargo, no proporciona ningún consejo sobre cómo crear una directiva de sudo completa y segura. Las directivas relacionadas con la seguridad son muy complejas y dependen en gran medida del entorno para el que se crean.

2 Creación de configuraciones de sudo personalizadas

Aprenda a crear una configuración de sudo personalizada de ejemplo sencilla y a ampliarla paso a paso. Cree grupos y utilice alias para mantener la configuración personalizada y eficiente.

Aviso
Aviso: las configuraciones de ejemplo son solo para fines de demostración

Las reglas de ejemplo que se describen a continuación son meramente demostrativas. Utilícelas para comprender la sintaxis general de los archivos de configuración de sudo. No las utilice en configuraciones reales, ya que no reflejan la complejidad de estos entornos.

2.1 Prácticas recomendadas de configuración de sudo

Antes de empezar, estas son algunas reglas básicas para mantener las configuraciones de sudo:

Use siempre visudo para editar archivos de configuración de sudo

Cualquier cambio en la configuración de sudo debe realizarse mediante el comando visudo. visudo es una herramienta personalizada que permite editar los archivos de configuración de sudo y ejecutar comprobaciones de sintaxis básicas, lo que garantiza que la configuración permanece intacta y funcional. Una configuración de sudo defectuosa puede provocar que un usuario quede bloqueado fuera de su propio sistema.

Cree siempre configuraciones personalizadas en /etc/sudoers.d/

Las configuraciones personalizadas deben residir en /etc/sudoers.d/ para que sudo las pueda extraer. Los ajustes de los archivos de configuración personalizados tienen prioridad sobre los de la configuración por defecto de /etc/sudoers.

Tenga siempre en cuenta el orden en el que se leen las configuraciones

Para asegurarse de que las configuraciones personalizadas se leen en el orden correcto, añada números como prefijos. Utilice ceros a la izquierda para establecer el orden en el que se leen los archivos. Por ejemplo, 01_myfirstconfig se analiza antes que 10_myotherconfig. Si se ha definido una directiva en un archivo que se lee antes que otro archivo que contiene información en conflicto, se aplica la directiva que se ha leído en último lugar.

Utilice siempre nombres de archivo descriptivos

Utilice nombres de archivo que indiquen lo que hace el archivo de configuración. Esto le ayuda a realizar un seguimiento de lo que se supone que debe hacer la configuración de sudo.

Sugerencia
Sugerencia: configuración de sudo y sistemas de archivos inmutables

Un sistema de archivos inmutable es un sistema de archivos que no se puede cambiar una vez que se ha instalado. Se accede a él en modo de solo lectura. Si el producto SUSE que utiliza se basa en un sistema de archivos inmutable, la configuración de sudo por defecto incluida con el producto se instala en /usr/etc/sudoers y los ajustes preconfigurados se encuentran en /usr/etc/sudoers.d/.

Sus propias configuraciones personalizadas se encuentran en /etc/sudoers.d/ y tienen prioridad sobre todo lo que se proporciona en /usr/etc/sudoers.d/. El comando visudo abre /usr/etc/sudoers y guarda el archivo modificado en /etc/sudoers, si no había ningún archivo sudoers anterior. Si ya había uno, visudo lo abre y escribe en él. La instancia ubicada en /etc/ tiene prioridad sobre la que se guardan en /usr/etc/. De esta forma, los ajustes de configuración realizados por el usuario no se interrumpirán con las actualizaciones.

2.2 Creación de un archivo de configuración específico del usuario

Cree un archivo de configuración de sudo que permita a un usuario normal (tux) utilizar el comando useradd con su propia contraseña, en lugar de la contraseña de root.

Ejemplo 1: Creación de un archivo de configuración específico del usuario
  1. Como administrador del sistema (root), cree un archivo de configuración personalizado que contenga las nuevas directivas específicas del usuario iniciando visudo. Utilice tanto numeración como un nombre descriptivo:

    # visudo -f /etc/sudoers.d/02_usermanagement
  2. Cree una regla que permita a tux ejecutar el binario /usr/sbin/useradd en todo el entorno al que se aplica esta configuración de sudo:

    tux1 ALL2 = /usr/sbin/useradd3

    1

    Especifique el usuario o el grupo. Muestra los usuarios por nombre o #UID, y los grupos por %GROUPNAME. Si tiene varios elementos, sepárelos con comas. Para negar entradas, utilice !.

    2

    Especifique uno o varios hosts (separados por comas). Utilice nombres de host (completos) o direcciones IP. Añada ALL para aplicar este ajuste globalmente en todos los hosts. Utilice ! para las negaciones.

    3

    Especifique uno o varios ejecutables (separados por comas). Al especificarlos, tenga en cuenta las siguientes reglas:

    /usr/sbin/useradd

    Sin opciones adicionales añadidas permite ejecutar todos los comandos useradd posibles.

    /usr/sbin/useradd -c

    Si especifica explícitamente una opción, esta será la única permitida. Nada más estará disponible para el usuario especificado anteriormente.

    /usr/sbin/useradd ""

    Esto permitiría al usuario invocar simplemente useradd sin ninguna opción.

    En el ejemplo anterior, sería conveniente permitir todas las opciones y subcomandos o limitarlos a unos pocos por motivos de seguridad, pero no tendría sentido prohibir a un usuario especificar ninguna opción en este contexto.

  3. Para permitir que el usuario utilice su propia contraseña en lugar de la contraseña de root, añada la siguiente línea:

    Defaults:tux !targetpw

    Cuando está activo, este indicador requiere que el usuario introduzca la contraseña del usuario de destino, es decir, root. Este indicador está habilitado por defecto en cualquier sistema SLE Micro. Puede negarlo con ! para requerir que el usuario introduzca su propia contraseña en lugar de la contraseña de root.

  4. Guarde la configuración, salga del editor y abra una segunda shell para comprobar si sudo respeta la nueva configuración.

2.3 Creación de configuraciones personalizadas agrupando elementos

Puede modificar la configuración del Ejemplo 1, “Creación de un archivo de configuración específico del usuario” para que un grupo de usuarios con nombre pueda ejecutar el comando useradd sin necesidad de la contraseña de root. Además, añada usermod y userdel a la lista de comandos disponibles para este grupo.

Ejemplo 2: Creación de configuraciones personalizadas agrupando elementos
  1. Para modificar la configuración de ejemplo, ábrala como administrador del sistema con visudo:

    # visudo /etc/sudoers.d/02_usermanagement
  2. Añada más usuarios a la regla en una lista separada por comas:

    tux, wilber ALL = /usr/sbin/useradd
  3. Para permitir que los usuarios de la lista ejecuten una lista de comandos, especifique los comandos en una lista separada por comas:

    tux, wilber ALL = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel
  4. Para permitir que los usuarios mostrados utilicen su propia contraseña en lugar de la contraseña de root, añada la siguiente línea:

    Defaults:tux, wilber !targetpw

    Cuando está activo, este indicador requiere que los usuarios mostrados introduzcan la contraseña del usuario de destino, es decir, root. Este indicador está habilitado por defecto en cualquier sistema SLE Micro. Puede negarlo con ! para requerir que los usuarios mostrados introduzcan su propia contraseña en lugar de la contraseña de root.

  5. Guarde la configuración, salga del editor y abra una segunda shell para comprobar si sudo respeta la nueva configuración.

2.4 Simplificación de configuraciones aplicando alias

Puede usar alias para simplificar aún más la configuración personalizada del Ejemplo 2, “Creación de configuraciones personalizadas agrupando elementos”. La agrupación de elementos ayuda hasta cierto punto, pero el uso de alias globales para usuarios, comandos y hosts es la forma más eficaz de mantener una configuración de sudo limpia y ajustada.

El uso de alias y grupos en lugar de listas es una forma mucho mejor de abordar los cambios en la configuración. Si un usuario se marcha, basta con eliminarlo de la declaración User_Alias global en su archivo de declaración de alias en lugar de buscar en todos los archivos de configuración personalizados. El mismo procedimiento se aplica a cualquier otro tipo de alias (Host_Alias, Cmnd_Alias y Runas_Alias).

Ejemplo 3: Simplificación de configuraciones aplicando alias
  1. Cree un archivo nuevo para almacenar las definiciones de alias globales:

    # visudo /etc/sudoers.d/01_aliases
  2. Añada la siguiente línea para crear el alias TEAMLEADERS:

    User_Alias    TEAMLEADERS = tux, wilber
  3. Añada la siguiente línea para crear el alias USERMANAGEMENT:

    Cmnd_Alias    USERMANAGEMENT = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel
  4. Guarde los cambios y salga de visudo.

  5. Como administrador del sistema, inicie visudo para editar el archivo de configuración de ejemplo:

    # visudo -f /etc/sudoers.d/02_usermanagement
  6. Suprima la regla anterior y sustitúyala por la siguiente que utiliza los alias que acaba de definir:

    TEAMLEADERS ALL = USERMANAGEMENT
  7. Para permitir que todos los usuarios definidos por User_Alias utilicen su propia contraseña en lugar de la contraseña de root, añada la siguiente línea:

    Defaults:TEAMLEADERS !targetpw
  8. Guarde la configuración, salga del editor y abra una segunda shell para comprobar si sudo respeta la nueva configuración.

Nota
Nota: información adicional

Encontrará una descripción más detallada de la sintaxis de configuración de sudo en la Sección 7, “Referencia de configuración de sudo y consulte la página de manual de sudo.

3 Cambio del tiempo límite de solicitud de contraseña de sudo

Aprenda a cambiar los ajustes de tiempo límite para ejecutar comandos que requieren privilegios de root sin que se le solicite la contraseña de root para cada comando.

Cuando se ejecuta un comando precedido por sudo por primera vez, se le solicita la contraseña de root. Esta contraseña sigue siendo válida durante un período determinado. Una vez que haya caducado, se volverá a solicitar al usuario la contraseña. Para ampliar o reducir el tiempo límite al ejecutar comandos que requieren privilegios de root, realice los siguientes cambios en el archivo de configuración de sudo.

Aviso
Aviso: no otorgue acceso ilimitado sin contraseña a los privilegios de root

Por motivos de seguridad, no otorgue acceso ilimitado a los privilegios de root. En su lugar, establezca un tiempo límite razonable para evitar el uso indebido de la cuenta de root por parte de cualquier intruso.

Procedimiento 1: Cambio del tiempo límite para las solicitudes de contraseña de sudo
  1. Como administrador del sistema, cree un nuevo archivo de configuración de sudo para la configuración de marca horaria con:

    # visudo --f=/etc/sudoers.d/timestamp_timeout

    Después de autenticarse correctamente con la contraseña de root, se abre el archivo.

  2. Habilite la edición y añada la línea timestamp_timeout=. Introduzca un valor para la marca horaria.

    Por ejemplo, para reducir el tiempo límite a tres minutos, introduzca:

    timestamp_timeout=3

    Si la marca horaria se define en cero, se le solicitará la contraseña de root cada vez que ejecute un comando de sudo.

  3. Guarde los cambios y cierre el archivo.

Ha creado un archivo de configuración de sudo y ha reducido el ajuste de tiempo límite para la ejecución de comandos sudo.

4 Inicio de una shell con privilegios de root

Inicie una shell con privilegios permanentes de root mediante el comando sudo ‑s o sudo -i. Con ambos comandos, se le pide la contraseña de root solo una vez.

4.1 Diferencia entre sudo -s y sudo -i

Tener que introducir sudo cada vez que se desea ejecutar un comando como root puede resultar tedioso. En su lugar, puede utilizar uno de los mecanismos incorporados para iniciar una shell con privilegios permanentes de root. Para ello, hay dos comandos disponibles:

  • sudo -s lanza la shell con el entorno del usuario actual y ofrece algunas medidas de control de privilegios. Para ejecutar este comando, introduzca la contraseña de root.

  • sudo -i inicia una shell de inicio de sesión interactiva con un entorno limpio. Para ejecutar este comando, introduzca la contraseña de root.

Con ambos comandos, la shell se inicia con un nuevo entorno y se inicia sesión como root. Cualquier comando posterior que se ejecute dentro de esa shell se ejecutará con privilegios elevados sin tener que volver a introducir la contraseña. Este entorno finaliza cuando se cierra la shell y se debe volver a introducir la contraseña para otro comando sudo.

4.2 Inicio de una shell con sudo -s

El comando sudo -s lanza una shell interactiva que no es de inicio de sesión. Después de autenticarse correctamente con la contraseña de root, todos los comandos siguientes se ejecutan con privilegios elevados.

La variable de entorno SHELL o la shell por defecto del usuario especifica qué shell se abre. Si esta variable está vacía, se toma la shell definida en /etc/passwd.

Por defecto, el comando sudo -s se ejecuta desde el directorio del usuario anterior, ya que el usuario de destino hereda el entorno del usuario anterior. El comando también se registra en el historial.

Para iniciar una shell con privilegios elevados permanentemente, introduzca el siguiente comando:

tux:~ > sudo -s
[sudo] password for root:
root:/home/tux # exit
tux:~ > 

El indicador cambia de > a # .

Ha iniciado una shell con privilegios elevados de forma permanente. Todos los comandos siguientes se ejecutan sin volver a solicitar la contraseña.

4.3 Inicio de una shell con sudo -i

El comando sudo -i es similar a la opción de línea de comandos sudo -s, pero lanza una shell de inicio de sesión interactiva. Al utilizar el comando sudo -s, el usuario de destino hereda el entorno del usuario anterior. Puede evitarlo mediante el comando sudo -i, donde el usuario de destino obtiene un entorno limpio y empieza en su propio directorio $HOME.

Para ejecutar un comando con sudo -i, introduzca lo siguiente:

tux:~ > sudo -i
[sudo] password for root:
root:~ # exit
tux:~ > 

Ha iniciado una shell con privilegios elevados permanentemente y el comando se registra en el historial. Todos los comandos siguientes se ejecutan sin volver a solicitar la contraseña.

5 Prácticas recomendadas de sudo

Conozca algunas de las prácticas recomendadas de sudo para controlar el acceso al sistema y permitir que los usuarios sean productivos.

Pruebe y audite exhaustivamente las configuraciones de sudo

Para crear un marco de configuración de sudo realmente eficaz y seguro, establezca una rutina de pruebas y auditorías periódicas. Identifique posibles lagunas y resuélvalas. No permita que la comodidad se imponga a la seguridad.

Mantenga las configuraciones personalizadas de sudo en archivos independientes

El archivo de configuración de directivas principal para sudo es /etc/sudoers. Este archivo lo proporcionan los paquetes del sistema, y los cambios realizados en él pueden interrumpir las actualizaciones. Por lo tanto, cree archivos de configuración independientes que contengan los ajustes personalizados en el directorio /etc/sudoers.d/. Estos se introducen por defecto mediante una directiva en /etc/sudoers.

Limite el tiempo límite de sudo

Por motivos de seguridad, no otorgue acceso ilimitado a los privilegios de root. En su lugar, establezca un tiempo límite razonable para evitar el uso indebido de la cuenta de root por parte de cualquier intruso. Para obtener más información, consulte la Sección 3, “Cambio del tiempo límite de solicitud de contraseña de sudo.

Utilice el comando visudo

Utilice el comando visudo para editar el archivo de forma segura el archivo /etc/sudoers, ya que comprueba la sintaxis del archivo antes de guardar los cambios. Se trata de una forma preventiva de corregir cualquier error que pueda dañar el sistema. Además de comprobar la sintaxis básica, también puede ejecutar visudo -c para comprobar si todo el marco de configuración de sudo se ha analizado en el orden correcto y sin errores.

Gestione a los usuarios en grupos en lugar de hacerlo individualmente

Mantenga su configuración de sudo lo más sencilla y manejable posible. Gestione los usuarios añadiéndolos a grupos y otorgando privilegios a estos grupos en lugar de a los individuos. Esto permite añadir o eliminar usuarios simplemente cambiando los ajustes del grupo, en lugar de tener que buscar al usuario en la configuración.

Esto es una regla de ejemplo que permite a todos los usuarios de un grupo %admingrp de ejemplo ejecutar todos los comandos:

%admingrp ALL = (ALL) ALL
Restrinja la vía para los binarios

Con la directiva secure_path, restrinja las áreas donde los usuarios pueden ejecutar comandos. El siguiente ejemplo es el ajuste por defecto que se incluye con SLE Micro.

Defaults secure_path="/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin:/usr/local/sbin"
Mantenga un registro transparente de sudo

Los registros de sudo se realizan en el archivo de registro estándar, donde las entradas pueden pasarse por alto fácilmente. Añada la siguiente regla a la configuración para especificar un archivo de registro de sudo dedicado.

Defaults logfile=/var/log/sudo.log

6 Solución de problemas

Aprenda a depurar y solucionar problemas de configuración de sudo.

6.1 Las configuraciones personalizadas en /etc/sudoers.d/ se ignoran

La directiva #includedir de /etc/sudoers omite los archivos que terminan con el carácter ~ o que contienen el carácter .. El objetivo de esto es evitar problemas con los archivos de configuración proporcionados por el gestor de paquetes (que contiene .), o con los archivos temporales o de copia de seguridad del editor (que terminan en ~). Asegúrese de que los nombres de los archivos de configuración personalizados no contienen ni terminan con estos caracteres. Si es así, cámbieles el nombre.

6.2 Conflicto de directivas personalizadas

El orden en el que se leen los archivos de configuración determina cuándo se aplica una directiva de configuración de sudo. Las directivas de un archivo ubicado en /etc/sudoers.d/ tienen prioridad sobre las mismas directivas de /etc/sudoers. Si las directivas personalizadas indicadas en /etc/sudoers.d/ no funcionan, compruebe el orden en el que se leen los archivos mediante visudo -c. Ajuste el orden, si es necesario.

6.3 Bloqueo debido a una configuración de sudo incorrecta

Si ha interrumpido accidentalmente la configuración de sudo del sistema y se ha bloqueado el acceso a sudo, utilice su - y la contraseña de root para iniciar una shell de root. Ejecute visudo -c para comprobar si hay errores y corríjalos mediante visudo.

7 Referencia de configuración de sudo

Esta sección proporciona una referencia de configuración básica de sudo que le ayudará a comprender y mantener tanto la configuración de sudo por defecto como la personalizada.

7.1 Sintaxis de configuración de sudoers

Los archivos de configuración de sudoers contienen dos tipos de opciones: cadenas e indicadores. Las cadenas pueden contener cualquier valor, pero los indicadores solo se pueden activar o desactivar. Las estructuras de sintaxis más importantes para los archivos de configuración de sudoers son las siguientes:

# Everything on a line after # is ignored1
Defaults !insults # Disable the insults flag2
Defaults env_keep += "DISPLAY HOME" # Add DISPLAY and HOME to env_keep3
tux ALL = NOPASSWD: /usr/bin/frobnicate, PASSWD: /usr/bin/journalctl4

1

Hay dos excepciones: #include y #includedir son comandos normales. La versión más reciente ya no utiliza #. En su lugar, las directivas de inclusión están ahora precedidas por @. La notación # sigue siendo compatible por motivos de compatibilidad inversa.

2

Elimine el carácter ! para activar el indicador deseado.

3

Especifique una lista de variables de entorno que se deben conservar si env_reset está habilitado.

4

Una regla compleja que establece que el usuario tux requiere una contraseña para ejecutar /usr/bin/journalctl y no requiere una para ejecutar /usr/bin/frobnicate en todos los hosts.

Indicadores y opciones útiles
targetpw

Si se define, sudo solicita la contraseña del usuario especificada en la opción -u o la contraseña de root, en caso de que no se utilice -u. El valor por defecto es ON.

Defaults targetpw # Turn targetpw flag ON
rootpw

Si se define, sudo solicita la contraseña de root. La opción por defecto es OFF.

Defaults !rootpw # Turn rootpw flag OFF
env_reset

Si se define, sudo crea un entorno mínimo con TERM, PATH, HOME, MAIL, SHELL, LOGNAME, USER, USERNAME y SUDO_*. Además, las variables enumeradas en env_keep se importan desde el entorno de llamada. El valor por defecto es ON.

Defaults env_reset # Turn env_reset flag ON
env_keep

La lista de variables de entorno que se deben conservar cuando el indicador env_reset está activado.

# Set env_keep to contain EDITOR and PROMPT
Defaults env_keep = "EDITOR PROMPT"
Defaults env_keep += "JRE_HOME" # Add JRE_HOME
Defaults env_keep -= "JRE_HOME" # Remove JRE_HOME
env_delete

La lista de variables de entorno que se deben eliminar cuando el indicador env_reset está desactivado.

# Set env_delete to contain EDITOR and PROMPT
Defaults env_delete = "EDITOR PROMPT"
Defaults env_delete += "JRE_HOME" # Add JRE_HOME
Defaults env_delete -= "JRE_HOME" # Remove JRE_HOME

7.2 Reglas básicas de sudoers

Cada regla sigue el siguiente esquema ([] indica partes opcionales):

#Who      Where         As whom      Tag                What
User_List Host_List = [(User_List)] [NOPASSWD:|PASSWD:] Cmnd_List
Sintaxis de regla de sudoers
User_List

Uno o varios identificadores (separados por comas): un nombre de usuario, un grupo con formato %GROUPNAME o un ID de usuario con formato #UID. La negación se puede especificar con el prefijo !.

Host_List

Uno o varios identificadores (separados por comas): un nombre de host (completo) o una dirección IP. La negación se puede especificar con el prefijo !. ALL es una opción habitual para Host_List.

NOPASSWD:|PASSWD:

Al usuario no se le pide una contraseña al ejecutar comandos que coincidan con Cmd_List después de NOPASSWD:.

PASSWD: es el valor por defecto. Solo es necesario especificarlo si tanto PASSWD: como NOPASSWD: están en la misma línea:

tux ALL = PASSWD: /usr/bin/foo, NOPASSWD: /usr/bin/bar
Cmnd_List

Uno o varios especificadores (separados por comas): una vía a un ejecutable, seguida de un argumento permitido opcional.

/usr/bin/foo     # Anything allowed
/usr/bin/foo bar # Only "/usr/bin/foo bar" allowed
/usr/bin/foo ""  # No arguments allowed

ALL se puede utilizar como User_List, Host_List y Cmnd_List.

7.3 Simplificación de sudoers usando alias

Los administradores pueden evitar tener que mantener un conjunto de reglas repetitivas e individuales introduciendo alias en los elementos de grupo. Su sintaxis es la misma que la de las reglas. Se admiten los siguientes tipos de alias:

User_Alias

Una lista de nombres de usuario.

Runas_Alias

Un grupo de usuarios por UID.

Host_Alias

Una lista de nombres de host.

Cmnd_Alias

Una lista de comandos y directorios, y alias

Considere los alias como listas con nombre de usuarios, grupos, comandos y hosts. Para ilustrar el poder de los alias, tomemos este ejemplo:

Host_Alias    WEBSERVERS = www1, www2, www31
User_Alias    ADMINS = tux, wilber, suzanne2
Cmnd_Alias    REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff3
ADMINS WEBSERVERS = REBOOT4

1

Los tres servidores se agrupan en el Host_Alias WEBSERVERS. Puede utilizar nombres de host (completos) o direcciones IP.

2

Al igual que en los hosts agrupados anteriormente, los usuarios de grupo o incluso los grupos de usuarios (como %wheel) se muestran aquí. La negación se consigue con el prefijo !, como es habitual.

3

Especifica un grupo de comandos que se utilizan en el mismo contexto.

4

Todos los alias se agrupan en una sola regla que indica que todos los usuarios especificados por User_Alias pueden ejecutar el grupo de comandos especificado en Cmnd_Alias en todos los hosts mencionados en Host_Alias.

En resumen, los alias ayudan a los administradores a mantener la flexibilidad y la gestión de sudoers (y, por lo tanto, su seguridad). Si, por ejemplo, uno de los usuarios ha abandonado la empresa, puede suprimir el nombre de esa persona de la instrucción User_Alias y de cualquier grupo del sistema al que pertenezca una sola vez, en lugar de tener que buscar todas las reglas que incluyan a ese usuario.