SUDO. Habilitarlo para usuarios

Trucos y Utilidades 5 de sep. de 2023

Tareas y ejecuciones como usuario con privilegios de root

Seguramente tengas que usar en algún momento alguna ejecución en tu equipo con permisos de superusuario (root).

Para ello en Linux dispones de dos opciones:

  • su
  • sudo comando

SU
El comando su lanza una nueva shell, lo que nos permitirá ejecutar en esa sesión cualquier comando que necesitemos ejecutar con privilegios de root hasta que salgamos de la sesión. Cuando lo lanzamos nos pide la contraseña del usuario root para abrir una nueva shell.

SUDO
El comando sudo nos permite ejecutar un solo comando con privilegios de superusario cada vez que lo usamos. La contraseña a usar para ejecutar el comando será nuestra clave.

sudo dispone de diferentes configuraciones para determinar que comandos podemos ejecutar y cuales no, y hasta si es necesario que se nos solicite contraseña para ejecutar los comandos.

Activando sudo (modo seguro y modo cómodo)

En este primer artículo sobre sudo, no vamos definir que comando puede o no usar un usuario, simplemente vamos a facilitar a un usuario el uso de sudo para la ejecución de tareas y comandos como root.

sudo seguro
Nos permite usar cualquier comando como si fuesemos root, pero cada vez que lo hacemos nos solicitará nuestra contraseña.

Puedes generar la configuracion para tu usuario ejecutando desde la shell el siguiente comando:

echo "$USER ALL=(ALL:ALL) ALL" > /tmp/autorizado_$USER; su -c "cp /tmp/autorizado* /etc/sudoers.d/."
Crear entrada en sudoers.d para el usuario que lo ejecute

Nota: Necesitarás escribir la clave de root para que el fichero se copie correctamente en la ruta de destino que usa sudo.

También puedes crear un script sencillo para autorizar a otros usuarios el uso de sudo:

#!/bin/bash
# SUDO-SEGURO (Se pide la clave del usuario siempre)
# Este script crea un fichero para poder usar sudo al usuario
echo "Debe proporcionar la clave de root cuando se le solicite"
echo "$USER ALL=(ALL:ALL) ALL" > /tmp/autorizado_$USER; su -c "cp /tmp/autorizado* /etc/sudoers.d/."

Forma de usar el comando sudo con configuración segura:

sudo <comando>
(te pedirá que escribas tu contraseña y luego ejecutará el comando)

sudo cómodo
Esta otra forma de configurar sudo, te permite ejecutar mediante sudo cualquier comando, pero nunca te pedirá la contraseña.

Para crear la entrada necesaria para tu usuario simplemente escribe desde la shell el siguiente comando:

echo "$USER ALL = (ALL) NOPASSWD: ALL" > /tmp/autorizado_$USER; su -c "cp /tmp/autorizado* /etc/sudoers.d/."
Crear entrada en sudoers.d para el usuario que lo ejecute

Nota: Es necesario que indiques la clave de root para que se copie el fichero en la ruta de destino para el correcto funcionamiento de sudo.

Si necesitas dar permisos a otros usuarios para usar sudo de forma cómoda, puedes crearte un script como el que dejo aquí, y cuando el usuario lance por primera vez éste se creará la entrada en /etc/sudoers.d para que pueda usar sudo sin necesidad de escribir cada vez su contraseña.

#!/bin/bash
# SUDO-COMODO (No se necesita la clave del usuario)
# Este script crea un fichero para poder usar sudo al usuario
echo "Debe proporcionar la clave de root cuando se le solicite"
echo "$USER ALL = (ALL) NOPASSWD: ALL" > /tmp/autorizado_$USER; su -c "cp /tmp/autorizado* /etc/sudoers.d/."

Forma de uso con configuración cómoda:

sudo <comando>
(Se ejecutará el comando directamente sin pedir contraseña)

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux