10 configuraciones útiles de sudoers para configurar 'sudo' en Linux

10 configuraciones útiles de sudoers para configurar 'sudo' en Linux

En Linux y otros sistemas operativos similares a unix, solo el raíz El usuario puede ejecutar todos los comandos y realizar ciertas operaciones críticas en el sistema, como instalar y actualizar, eliminar paquetes, crear usuarios y grupos, modificar archivos de configuración del sistema importantes, etc.

Sin embargo, un administrador del sistema que asume que el papel del usuario raíz puede permitir que otros usuarios normales del sistema con la ayuda del comando sudo y algunas configuraciones ejecutaran algunos comandos, así como llevar a cabo una serie de operaciones vitales del sistema, incluidas las mencionadas anteriormente,.

Alternativamente, el administrador del sistema puede compartir la contraseña del usuario root (que no es un método recomendado) para que los usuarios normales del sistema tengan acceso a la cuenta de usuario root a través de SU dominio.

sudo Permite que un usuario permitido ejecute un comando como root (u otro usuario), según lo especificado por la política de seguridad:

  1. Lee y analiza /etc/sudoers, busca al usuario invocador y sus permisos,
  2. Luego solicita al usuario invocador para una contraseña (normalmente la contraseña del usuario, pero también puede ser la contraseña del usuario de destino. O se puede omitir con la etiqueta nopasswd),
  3. Después de eso, sudo crea un proceso infantil en el que llama setUid () Para cambiar al usuario objetivo
  4. A continuación, ejecuta un shell o el comando dado como argumentos en el proceso infantil anterior.

A continuación hay diez /etc/sudoers configuraciones de archivos para modificar el comportamiento de sudo comando usando Valores predeterminados entradas.

$ sudo gato /etc /sudoers 
/etc/sudoers archivo
# # Este archivo debe editarse con el comando 'Visudo' como root. # # Considere agregar contenido local en /etc /sudoers.d/ en lugar de # modificar directamente este archivo. # # Consulte la página del hombre para obtener detalles sobre cómo escribir un archivo de sudoers. # Los valores predeterminados env_reset los defaults mail_badpass defaults seguros_path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" defaults logFile = "/var/sudo/sudo/sudo.Registro "la conferencia predeterminada =" Always "defaults badpass_message =" La contraseña está incorrecta, intente nuevamente ", predeterminado, PASSWD_TRIES = 5 DEFAULTS Insultos predeterminados log_input, log_output 

Tipos de entradas predeterminadas

Parámetro predeterminado, parameter_list #afect a todos los usuarios en cualquier host [correos electrónicos protegidos] _list parámetro, parameter_list #affects Todos los usuarios en un host específico predeterminados: parámetro user_list, parameter_list #affects un usuario específico de usuarios!Parámetro cmnd_list, parameter_list #affects un comando específico predeterminado> parámetro runas_list, parameter_list #afects comandos que se ejecutan como un usuario específico 

Para el alcance de esta guía, cero hasta el primer tipo de Valores predeterminados En los formularios a continuación. Los parámetros pueden ser banderas, valores enteros, cadenas o listas.

Debe tener en cuenta que las banderas son implícitamente booleanas y se pueden apagar utilizando el '!' operador y listas tienen dos operadores de asignación adicionales, += (agregar a la lista) y -= (Quitar de la lista).

Parámetro predeterminado del parámetro o predeterminado parámetro = valor o predeterminado parámetro -= valor valores de valor predeterminado += valor o predeterminado !parámetro 

1. Establecer una ruta segura

Esta es la ruta utilizada para cada comando ejecutado con sudo, tiene dos importaciones:

  1. Utilizado cuando un administrador del sistema no confía en que los usuarios de sudo tengan una variable de entorno de ruta segura
  2. Para separar la "ruta raíz" y la "ruta de usuario", solo los usuarios definidos por exempt_group no se ven afectados por esta configuración.

Para configurarlo, agregue la línea:

Los valores predeterminados seguros_path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" 

2. Habilitar sudo en la sesión de inicio de sesión de usuario de TTY

Para permitir que sudo sea invocado de un verdadero tty Pero no a través de métodos como cron o cgi-bin scripts, agregue la línea:

Valores predeterminados requirryetty 

3. Ejecutar el comando sudo usando un Pty

Algunas veces, los atacantes pueden ejecutar un programa malicioso (como un virus o malware) usando sudo, que nuevamente desembolsaría un proceso de fondo que permanece en el dispositivo terminal del usuario incluso cuando el programa principal ha terminado de ejecutar.

Para evitar tal escenario, puede configurar sudo para ejecutar otros comandos solo desde un psuedo-pty utilizando el use_pty Parámetro, ya sea que el registro de E/S esté activado o no como sigue:

Valores predeterminados use_pty 

4. Crear un archivo de registro de sudo

Por defecto, sudo registra a través de syslog (3). Sin embargo, para especificar un archivo de registro personalizado, use el parámetro de archivo de registro como así:

Defaults logFile = "/var/log/sudo.registro" 

Para registrar el nombre de host y el año de cuatro dígitos en el archivo de registro personalizado, use Log_host y Log_year Parámetros respectivamente de la siguiente manera:

Defaults log_host, log_year, logFile = "/var/log/sudo.registro" 

A continuación se muestra un ejemplo de un archivo de registro de sudo personalizado:

Crear archivo de registro de sudo personalizado

5. Registro de la entrada/salida del comando SUDO

El Log_input y Log_output Los parámetros permiten a sudo ejecutar un comando en pseudo-tty y registrar todas las entrada del usuario y toda la salida enviada a la pantalla receptivamente.

El directorio de registro de E/S predeterminado es /var/log/sudo-io, y si hay un número de secuencia de sesión, se almacena en este directorio. Puede especificar un directorio personalizado a través del iolog_dir parámetro.

Los valores predeterminados log_input, log_output 

Hay algunas secuencias de escape que se admiten, como %seq que se expande a un número de secuencia base-36 que aumenta monotónicamente, como 000001, donde cada dos dígitos se utilizan para formar un nuevo directorio, e.gramo. 00/00/01 Como en el ejemplo a continuación:

$ cd/var/log/sudo-io/$ ls $ cd 00/00/01 $ ls $ gat log log 
Registro de salida de entrada de sudo

Puede ver el resto de los archivos en ese directorio usando el comando CAT.

6. Lectura de usuarios de sudo

Para dar una conferencia a los usuarios de sudo sobre el uso de contraseñas en el sistema, use el conferencia Parámetro como se muestra a continuación.

Tiene 3 valores posibles:

  1. siempre - siempre dar una conferencia a un usuario.
  2. Una vez: solo dar una conferencia a un usuario la primera vez que ejecutan el comando sudo (esto se usa cuando no se especifica ningún valor)
  3. nunca - nunca dar una conferencia al usuario.
 Lectura predeterminada = "Siempre" 

Además, puede establecer un archivo de conferencias personalizado con el Lecture_file Parámetro, escriba el mensaje apropiado en el archivo:

Los valores predeterminados lecture_file = "/path/to/file" 
Lectura de usuarios de sudo

7. Mostrar mensaje personalizado cuando ingrese la contraseña de sudo incorrecta

Cuando un usuario ingresa una contraseña incorrecta, se muestra un determinado mensaje en la línea de comando. El mensaje predeterminado es "perdón intente de nuevo", Puede modificar el mensaje usando el badpass_message Parámetro de la siguiente manera:

Los valores predeterminados badpass_message = "La contraseña está incorrecta, intente nuevamente" 

8. Aumentar la contraseña de sudo intenta límite

El parámetro passwd_tries se usa para especificar el número de veces que un usuario puede intentar ingresar una contraseña.

El valor predeterminado es 3:

Los valores predeterminados passwd_tries = 5 
Aumentar los intentos de contraseña de sudo

Para establecer un tiempo de espera de contraseña (el valor predeterminado es de 5 minutos) usando passwd_timeout Parámetro, agregue la línea a continuación:

Los valores predeterminados passwd_timeout = 2 

9. Deje que sudo lo insultes cuando ingreses contraseña incorrecta

En caso de que un usuario escriba una contraseña incorrecta, sudo mostrará insultos en el terminal con el parámetro de insultos. Esto apagará automáticamente el badpass_message parámetro.

Insultos predeterminados 
Vamos a insultarlo cuando ingrese una contraseña incorrecta

Leer más: Deje que sudo lo insultes cuando ingresas contraseña incorrecta

10. Obtenga más configuraciones de sudo

Además, puede aprender más sudo Configuraciones de comandos Reading: diferencia entre SU y sudo y cómo configurar sudo en Linux.

Eso es todo! Puede compartir otras configuraciones o trucos de comando de sudo útiles y consejos con usuarios de Linux a través de la sección de comentarios a continuación.