Crear un usuario sin privilegios y activar sudo en ArchLinux 2010.05 x64

Introducción.

Para el uso cotidiano del servidor es conveniente crear un usuario sin privilegios que acceda temporalmente a los privilegios de root unicamente en los momentos exactos en que se vayan a desarrollar tareas administrativas.  Para hacer esto es necesario instalar y configurar el comando sudo tal y como se muestra a continuación.

Crear un usuario sin privilegios.

Crear al usuario jimezam en el sistema operativo.  Modifique el nombre de usuario y nombre real de acuerdo a sus necesidades.

# /usr/sbin/useradd -m -g users -s /bin/bash -c “Jorge Ivan Mezajimezam

Asignar una contraseña para el usuario recién creado.

# passwd jimezam

Instalar y configurar sudo.

El comando sudo tiene varias ventajas sobre el uso directo del usuario root: autoriza a usuarios específicos, los registros se realizan según el usuario que lo invocó, utiliza la contraseña del mismo usuario así que no es necesario divulgar la contraseña explícita del usuario root, entre otras.

Instalar el paquete de sudo.

# pacman -S sudo

Configurar a sudo para que autorice su uso a todos los usuarios que pertenezcan al grupo wheel.

# visudo

%wheel      ALL=(ALL) ALL

Editar la usuario recién creado para que pertenezca al grupo wheel y por ende, pueda utilizar sudo.

# usermod -G wheel jimezam

Configurar los insultos de sudo.

Una opción adicional pero divertida que descubrí revisando la documentación de ArchLinux es que es posible indicarle al sudo que insulte al usuario cuando este ingresa incorrectamente su contraseña, esto en lugar del simple y plano mensaje de “wrong password“.

Para hacer esto es necesario indicarle a la configuración de sudo que estamos interesados en activar los insultos.

# visudo

Defaults insults

Algunos de los insultos que recibí cuando intenté utilizar sudo pero ingresé mal mi contraseña, fueron los siguientes.

  • It’s your word against mine.
  • My pet ferret can type better than you!
  • BOB says:  you seem to have forgotten your passwd, enter another!
  • It can only be attributed to human error.
  • Sorry about this, I know it’s a bit silly.
  • You silly, twisted boy.
  • … and it used to be so popular …
  • Have a gorilla …
  • You do that again and see what happens…

Enlaces.

Instalar centos64-general basado en CentOS 5.4 64 bits en KVM

Introducción.

El fin del presente artículo es el de preparar una imagen básica del sistema operativo, en este caso CentOS 5.4 de 64 bits, para futuros usos en experimentos y pruebas.  La infraestructura de virtualización que utilizo para implementarla es KVM.

En términos generales estos son las adecuaciones que tendrá está imagen básica.

  1. Actualización de paquetes.
  2. Instalar ACPID.
  3. Permitir la ejecución de sudo para el usuario jimezam.
  4. Bloquear la contraseña del usuario root.
  5. Instalación del JDK de Java.
  6. Instalación del ambiente de desarrollo C/C++.
  7. Depurar el software instalado.

Creación de la máquina virtual para la instalación del sistema operativo.

$ virt-install
–connect qemu:///system
-n
centos-5.4_x64-general
-r 384
–os-type linux
–os-variant generic26
–hvm
–cdrom /u/isos/CentOS-5.4-x86_64-bin-DVD.iso
–network bridge:br0
–disk path=/u/vms/
centos-5.4_x64-general.img,size=7
–vnc –noautoconsole
–accelerate

Conexión remota a la KVM para el proceso de instalación y administración.

$ /usr/bin/virt-viewer -c qemu+ssh://ivy/system centos-5.4_x64-general

Actualización de paquetes.

# yum check-update

# yum update

Instalación de ACPID.

# yum install acpid

Activar el acceso a sudo para wheel.

# visudo

%wheel     ALL=(ALL)    ALL

# usermod -G wheel jimezam

Bloquear la contraseña del usuario root.

# passwd -l root

Instalación del JDK de Java.

# yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel

Instalación del ambiente de desarrollo C/C++.

# yum install gcc gcc-c++ autoconf automake

Permitirle a un usuario ejecutar el comando "sudo" en Linux CentOS 5.4

Introducción.

Por defecto en Linux CentOS, hijo de RedHat, la configuración del comando sudo viene restringida.  Su filosofía es la de utilizar al usuario root directamente.  Si intentamos ejecutar cualquier comando mediante sudo se obtiene siempre este mensaje de error.

xxxxx is not in the sudoers file.  This incident will be reported.

Quienes utilizamos Ubuntu, hijo de Debian, estamos acostumbrados a un usuario root sin contraseña y a utilizar el sudo cada vez que se va a desarrollar alguna actividad de administración que requiera los privilegios del superusuario. A continuación se detallan los pasos necesarios para configurar de esta manera el comportamiento del comando sudo.

Procedimiento.

Configuración de sudoers.

Realice los pasos de esta sección como usuario administrador.

$ su –

# visudo

Remueva el comentario inicial de la siguiente línea según como se muestra a continuación.

## Allows people in group wheel to run all commands
%wheel    ALL=(ALL)    ALL

Autorización a los usuarios.

Utilizando las herramientas de administración gráficas.

Ejecute la herramienta de administración de usuarios y grupos.

Administración de los usuarios y los grupos

Seleccione las preferencias del Administrador de Usuarios y Grupos mediante el siguiente menú.

Edit > Preferences.

Remueva la marca de la casilla de verificación llamada Hide system users and groups.

Mostrar los usuarios y grupos del sistema

Seleccione la hoja Groups y en ella ubique al grupo wheel y presione el botón de Properties en la parte superior.

Editar las propiedades del grupo wheel.

Seleccione los usuarios que estarán autorizados para ejecutar el comando sudo y presione el botón de Ok .

Agregar usuarios al grupo wheel.

Utilizando las herramientas de administración de línea de comando.

# usermod -G wheel jimezam

Listo!

Aposteriori.

Si se desea una aproximación un poco mas cercana a la forma como Debian maneja este tipo de autorizaciones, puede que le sea interesante bloquear el acceso directo al usuario root mediante su contraseña.  Para hacer esto ejecute el siguiente comando.

$ sudo passwd -l root

De esta manera no será posible iniciar sesión de ninguna manera con el usuario root y las tareas administrativas sólo podrán ser ejecutadas mediante la invocación del sudo por los sudoers, es decir, por los usuarios que se hayan inscrito en el grupo wheel. Este procedimiento se revierte fácilmente al asignarle una nueva contraseña al usuario root con passwd.