noticias
Serverspace Tecnologías en los Emiratos Árabes Unidos: lanzamiento de Falconcloud
WB
William Bell
Sábado, Junio 4, 2020
Actualizado junio 7, 2023

Debian derechos de superusuario (sudo, visudo)

Debian Linux

Información general

Linux Los sistemas operativos implementan el principio de diferenciar los privilegios de los usuarios, lo que significa que diferentes cuentas tienen diferentes cantidades de derechos de acceso a directorios, archivos y programas.rams. Los derechos máximos se otorgan a la cuenta raíz integrada. Las cuentas de usuario recién creadas suelen estar significativamente restringidas en el acceso a los archivos de configuración del sistema, la gestión de servicios y la instalación y eliminación de paquetes de software. Sin embargo, no se recomienda trabajar en el sistema operativo con la cuenta raíz, principalmente por razones de seguridad. En este caso, el sudo La utilidad de línea de comandos viene al rescate.

El comando sudo permite ejecutar comandos individuales con mayores privilegios (por defecto, con derechos de root) utilizando una cuenta sin privilegios. Veamos qué se requiere para que esta utilidad funcione.

Instalacion y configuracion

In Ubuntu OS, sudo está activado de forma predeterminada, y en Debian, si no se seleccionó el paquete correspondiente durante el proceso de instalación, lo más probable es que la siguiente imagen sea:

root@debian10:~# sudo
-bash: sudo: command not found

Por lo tanto, debe instalar el paquete que falta. Actualice la información del repositorio e instale sudo:

apt-get update
apt-get install sudo

Estamos esperando el final del proceso:

Debian superuser rights
Captura de pantalla n.º 1. Debian derechos de superusuario

Después de una instalación exitosa, deberá configurar sudo para determinar qué usuarios o grupos podrán usar la escalada de privilegios y en qué medida. Todos estos ajustes se almacenan en el archivo de configuración. / etc / sudoers, sin embargo, se desaconseja encarecidamente realizar cambios directamente en él. Para estos fines, se utiliza un comando especial:

visudo

que lanza un editor de texto con un archivo de configuración:

Text editor with a configuration file
Captura de pantalla №2. Editor de texto con un archivo de configuración

Dos líneas se encargan de otorgar derechos:

root    ALL=(ALL:ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

La primera línea establece los derechos para la cuenta raíz, la segunda establece los derechos para los miembros del grupo sudo que se creó cuando se instaló el paquete (el % firmar delante del nombre significa que el nombre pertenece a un grupo de usuarios).

En consecuencia, tenemos dos formas principales de otorgar a la cuenta de usuario el derecho de uso sudo:

Agregue una cuenta de usuario (por ejemplo, usuario) al grupo sudo en el servidor:

usermod –a –G sudo user

Después de cambiar la membresía del grupo, deberá volver a iniciar sesión en esta cuenta para aplicar la nueva configuración. Este método se recomienda en los casos en que el usuario debe tener todos los derechos.

Cree una nueva entrada en el archivo, por ejemplo, para la cuenta de usuario. Añadimos una línea similar a root:

user ALL=(ALL:ALL) ALL

Se recomienda agregar una nueva entrada en los casos en que se ajustará la lista de privilegios (más sobre esto más adelante). Si hicimos cambios en el archivo, debemos guardarlos presionando el atajo de teclado Ctrl-O y salir del editor - Ctrl-X.

Ahora puedes comprobar el correcto funcionamiento:

user@debian10:~$ sudo cat /etc/sudoers
[sudo] password for user:

El comando sudo solicita la contraseña del usuario actual (en este caso, usuario): ingrésela y, si todo se hace correctamente, veremos el contenido del archivo de configuración del sistema.

Sintonia FINA

Por lo tanto, un usuario común puede ejecutar comandos con los derechos de la cuenta raíz sin conocer su contraseña. Esto es muy conveniente, pero puede ser inseguro. ¿Es posible limitar el rango de comandos que se pueden ejecutar usando sudo? Sí, y el mismo archivo de configuración nos ayudará con esto. Comenzamos visudo nuevamente y entendemos más. Nos interesa el parametros especificados después del nombre de usuario:

Parameters specified after the username
Captura de pantalla №3. Pensilvaniarametros especificados después del nombre de usuario

Los analizaremos con más detalle:

  • TODAS= (TODOS: TODOS) TODOS - el primer parameter determina a qué host se aplica la configuración. Al usar un servidor dedicado, el parameter se puede dejar sin cambios;
  • TODO=(TODO TODO)TODOS - el paramLos éteres entre paréntesis determinan la autoridad de qué usuario (primera pag.rameter) y/o grupo (segundo parameter) se ejecutará el comando. De forma predeterminada, sudo ejecuta el comando como root, pero al comenzar con el modificador –u, puede especificar una cuenta diferente, y con el modificador –g puede especificar otro grupo cuyos privilegios se utilizarán al inicio;
  • TODOS=(TODOS: TODOS)TODAS- el tercer padrerameter determina a qué archivos y comandos pertenecen estas configuraciones.

Con base en lo anterior, si es necesario, determine la lista de comandos permitidos, reemplace el último paraméter TODAS con lo que necesitamos, enumerando los comandos separados por comas. Por ejemplo, la línea:

user    ALL=(ALL:ALL) /sbin/shutdown –r, /bin/cat

da al usuario el derecho de usar sudo para reiniciar el servidor con sudo /sbin/shutdown –r y ver archivos usando sudo /bin/cat. No se ejecutarán otros comandos a través de sudo. Por ejemplo, cuando intenta apagar el servidor con el comando sudo /sbin/shutdown –h, obtenemos la respuesta:

Sorry, user user is not allowed to execute '/sbin/shutdown -h' as root on debian10.

Conveniente

Puede ver la lista de privilegios ejecutando sudo –l (se mostrará la lista del usuario actual) o sudo –l –U user (se mostrará la lista de privilegios de usuario):

The list of user privileges
Captura de pantalla №4. La lista de privilegios de usuario

La composición de sudo incluye el comando sudoedit, que inicia un editor de texto con el archivo especificado inmediatamente con privilegios elevados, es decir, en lugar del comando:

sudo nano /etc/network/interfaces

poder correr:

sudoedit /etc/network/interfaces

Si necesita trabajar en modo de privilegio elevado durante mucho tiempo y no es conveniente ingresar sudo para cada comando, puede ejecutar una instancia del intérprete de comandos a través de sudo:

sudo bash

y continuar trabajando en él: todos los equipos se lanzarán con derechos elevados. Al finalizar, salga del intérprete con el comando de salida.

Votar:
5 de 5
Calificación promedio: 5
Calificado por: 2
1101 CT Ámsterdam Países Bajos, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300
Utilizamos cookies para hacer que su experiencia en el Serverspace mejor. Al continuar navegando en nuestro sitio web, usted acepta nuestros
Uso de Cookies y Sitio de Política de privacidad.