LinuxParty
En Linux y otros sistemas operativos similares a Unix, solo el usuario root 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 importantes de configuración del sistema, etc.
Sin embargo, un administrador del sistema que asume el rol de usuario root puede permitir que otros usuarios normales del sistema con la ayuda del comando sudo y algunas configuraciones ejecuten algunos comandos, así como también lleven 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 del usuario root a través del comando su.
sudo permite que un usuario autorizado ejecute un comando como root (u otro usuario), según lo especificado por la política de seguridad:
- Lee y analiza /etc/sudoers, busca el usuario que invoca 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 se puede omitir con la etiqueta NOPASSWD),
- después de eso, sudo crea un proceso secundario en el que llama a setuid() para cambiar al usuario objetivo
- a continuación, ejecuta un shell o el comando proporcionado como argumento en el proceso secundario anterior.
A continuación se muestran diez configuraciones de archivos /etc/sudoers para modificar el comportamiento del comando sudo mediante las entradas predeterminadas.
$ sudo cat /etc/sudoers
# # Este archivo DEBE ser editado 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 manual para obtener detalles sobre cómo escribir un archivo sudoers. #
Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" Defaults logfile="/var/log/sudo.log" Defaults lecture="always" Defaults badpass_message="Password is wrong, please try again" Defaults passwd_tries=5 Defaults insults Defaults log_input,log_output
Tipos de entradas predeterminadas
Defaults parameter, parameter_list # Afecta a todos los usuarios en cualquier host
Defaults@Host_List parameter, parameter_list # Afecta a todos los usuarios en un host específico
Defaults:User_List parameter, parameter_list # Afecta a un usuario específico
Defaults!Cmnd_List parameter, parameter_list # Afecta a un comando específico
Defaults>Runas_List parameter, parameter_list # Afecta a los comandos que se ejecutan como un usuario específico
Debe tener en cuenta que las banderas son implícitamente booleanas y se pueden desactivar con el operador,'!'
y las listas tienen dos operadores de asignación adicionales +=
(agregar a la lista) y -=
(eliminar de la lista).
Defaults parameter O Defaults parameter=value O Defaults parameter -=value Defaults parameter +=value O Defaults !parameter
1. Establecer una RUTA segura
Esta es la ruta utilizada para cada comando que se ejecuta con sudo, tiene dos importancias:
- Se usa cuando un administrador del sistema no confía en que los usuarios de sudo tengan una variable de entorno PATH segura
- Para separar la "ruta root" y la "ruta del usuario", solo los usuarios definidos por exempt_group 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"
2. Habilite sudo en la sesión de inicio de sesión de usuario de TTY
Para habilitar la invocación de sudo desde un tty real, pero no a través de métodos como scripts cron o cgi-bin, agregue la línea:
Defaults requiretty
3. Ejecute el comando Sudo usando un pty
Algunas veces, los atacantes pueden ejecutar un programa malicioso (como un virus o malware) usando sudo, lo que nuevamente bifurcaría un proceso en segundo plano que permanece en el dispositivo terminal del usuario incluso cuando el programa principal ha terminado de ejecutarse.
Para evitar tal escenario, puede configurar sudo para ejecutar otros comandos solo desde un psuedo-pty usando el parámetro,use_pty
ya sea que el registro de E/S esté activado o no, de la siguiente manera:
Defaults use_pty
4. Crear un archivo de registro de Sudo
De forma predeterminada, sudo inicia sesión a través de syslog(3). Sin embargo, para especificar un archivo de registro personalizado, use el parámetro de archivo de registro 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, use los parámetros log_host y log_year respectivamente de la siguiente manera:
Defaults log_host, log_year, logfile="/var/log/sudo.lo
5. Registro de entrada/salida del comando Sudo
Los parámetros log_input y log_output permiten que sudo ejecute un comando en pseudo-tty y registre todas las entradas y salidas del usuario enviadas a la pantalla de manera receptiva.
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 parámetro iolog_dir.
Defaults log_input, log_output
Se admiten algunas secuencias de escape, como %{seq}
la que se expande a un número de secuencia de base 36 que aumenta monótonamente, como 000001, donde cada dos dígitos se utilizan para formar un nuevo directorio, por ejemplo, 00/00/01 como en el siguiente ejemplo:
$ cd /var/log/sudo-io/ $ ls $ cd 00/00/01 $ ls $ cat log
Registrar sudo Entrada / Salida
Puede ver el resto de los archivos en ese directorio usando el comando cat.
6. Sermonear a los usuarios de Sudo
Para dar lecciones a los usuarios de sudo sobre el uso de contraseñas en el sistema, use el parámetro de lectura como se muestra a continuación.
Tiene 3 valores posibles:
- always (siempre): siempre sermonear a un usuario.
- once (una vez): solo sermonee a un usuario la primera vez que ejecute el comando sudo (esto se usa cuando no se especifica ningún valor)
- never (nunca), nunca sermonee al usuario.
Defaults lecture="always"
Además, puede configurar un archivo de conferencia personalizado con el parámetro conference_file, escriba el mensaje apropiado en el archivo:
Valores predeterminados
Defaults lecture_file="/ruta/al/archivo"
Usuarios de Sudo de conferencias
7. Muestra un mensaje personalizado cuando ingresas una contraseña sudo incorrecta
Cuando un usuario ingresa una contraseña incorrecta, se muestra un mensaje determinado en la línea de comando. El mensaje predeterminado es " lo siento, inténtalo de nuevo ", puedes modificar el mensaje usando el parámetro badpass_message de la siguiente manera:
Defaults badpass_message="Password is wrong, please try again"
8. Aumente el límite de intentos de contraseña de sudo
El parámetro passwd_tries se usa para especificar la cantidad de veces que un usuario puede intentar ingresar una contraseña.
El valor predeterminado es 3:
Defaults passwd_tries=5
Aumentar los intentos de contraseña de Sudo
Para establecer un tiempo de espera de contraseña (el valor predeterminado es 5 minutos) usando el parámetro passwd_timeout, agregue la siguiente línea:
Defaults passwd_timeout=2
9. Deja que Sudo te insulte cuando ingresas una 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 desactivará automáticamente el parámetro badpass_message.
Defaults insults
Vamos a configurar Sudo para insultarte cuando ingreses una contraseña incorrecta
10. Más información sobre configuraciones de Sudo
Además, puede aprender más configuraciones de comandos sudo leyendo: Diferencia entre su y sudo y Cómo configurar sudo en Linux.
¡Eso es todo! Puede compartir otras configuraciones útiles de comandos sudo o trucos y consejos con los usuarios de Linux a través de la sección de comentarios a continuación.
-
Linux
- ¿Por qué Torvalds eliminó a los encargados rusos del mantenimiento del núcleo de Linux?
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home
- Por qué un kernel Linux de distribución 'congelada' no es la mejor opción para la seguridad
- RebornOS es una versión hermosa y fácil de usar de Arch Linux con abundantes opciones de escritorio
- Linus Torvalds sobre el 'hilarante' bombo de la IA
- Cambiar la hora en Linux con Chrony
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- Linux 6.9 será el primero en superar los 10 millones de objetos Git
- Zorin OS 17.1 lanzado con soporte mejorado para aplicaciones de Windows, edición educativa