4 configuraciones de Sudoers útiles en Linux

En Linux y otros sistemas operativos similares a Unix, sólo el usuario root (principal) 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 importantes archivos de configuración del sistema, entre otros.

Sin embargo, un administrador del sistema que asume el rol del usuario root puede permitir que otros usuarios normales del sistema con la ayuda del comando sudo y unas pocas configuraciones ejecuten algunos comandos, además de llevar a cabo una serie de operaciones vitales del sistema, incluidas las mencionadas anteriormente.

De forma alternativa, el administrador del sistema puede compartir la contraseña del usuario root para que los usuarios normales del sistema tengan acceso a la cuenta de usuario root mediante el comando ‘su’.

Sudo permite a un usuario autorizado ejecutar un comando como root, según lo especificado por la directiva de seguridad.

  • Lee y analiza / etc / sudoers, busca el usuario y sus permisos,
  • Luego solicita al usuario que invoca una contraseña (normalmente la contraseña del usuario, pero también puede ser la contraseña del usuario de destino o puede omitirse con la etiqueta NOPASSWD)
  • Después de eso, sudo crea un proceso secundario en el que llama a setuid () para cambiar al usuario de destino
  • A continuación, ejecuta un shell o el comando dado como argumentos en el proceso anterior.

A continuación se presentan 4 configuraciones de archivo / etc / sudoers para modificar el comportamiento del comando sudo usando las entradas de Defaults.

Sudo cat / etc / sudoers

Para el alcance de esta guía, nos pondremos a cero para el primer tipo de valores predeterminados en los formularios siguientes. Los parámetros pueden ser banderas, valores enteros, cadenas o listas.

Debe tener en cuenta que las banderas se pueden desactivar con la opción ‘!’ Operador y tienen dos operadores de asignación adicionales, + = (agregar a la lista) y – = (quitar de la lista).

  1. Establezca un PATH seguro

Este es el camino que se usa para cada comando ejecutado con sudo, tiene dos importances:

  • Se utiliza cuando el administrador del sistema no confía en los usuarios de sudo para tener una variable de entorno PATH segura
  • Para separar “ruta raíz” y “ruta de usuario”, sólo los usuarios definidos por el grupo exento no se ven afectados por esta configuración.

Para configurarlo, agregue la línea:

Defaults secure_path = “/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / snap / bin”

  1. Habilitar sudo en sesión de inicio de sesión de usuario TTY

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

Defaults requiretty

  1. Ejecutar Sudo Command Usando un pty

Algunas veces, los atacantes pueden ejecutar un programa malicioso (como un virus o malware) con sudo, que de nuevo forzaría un proceso en segundo plano que permanece en el dispositivo terminal del usuario incluso cuando el programa principal haya terminado de ejecutarse.

Para evitar este escenario, se puede configurar sudo para ejecutar otros comandos sólo desde un psuedo-pty mediante el parámetro use_pty, si el registro de E / S está activado o no de la siguiente manera:

Defaults use_pty

  1. Crear un archivo de registro Sudo

Por defecto, sudo registra a través de syslog (3). Sin embargo, para especificar un archivo de registro personalizado, utilice el parámetro logfile de la siguiente manera:

Defaults logfile = “/ var / log / sudo.log”

Para registrar el nombre de host y el año de cuatro dígitos en el archivo de registro personalizado, utilice los parámetros log_host y log_year, respectivamente, de la siguiente manera:

Defaults log_host, log_year, logfile = “/ var / log / sudo.log”

Es bastante simple como se puede observar, pero ante cualquier duda o sugerencia, no olviden dejarla en los comentarios. :mrgreen: