Gratis Te mudamos el sitio y los correos sin cortes ni costo

0810 345 6377 ESEN, cambiar a inglés
InHosting
ESEN, cambiar a inglés

Servidores Linux

Usuario administrador con sudo: crearlo y dejar de entrar como root

Por el equipo técnico de InHosting7 min de lectura

En pocas palabras

En lugar de trabajar como root, creá un usuario propio y dale permiso de administrador con sudo. En Debian y Ubuntu: adduser marta y usermod -aG sudo marta. En AlmaLinux: useradd -m marta, passwd marta y usermod -aG wheel marta. Copiale tu clave SSH, entrá con esa cuenta desde una terminal nueva y probá sudo. Recién con las dos cosas funcionando, poné PermitRootLogin no (o prohibit-password) en un archivo de /etc/ssh/sshd_config.d/ y reiniciá SSH. Desde ese momento, cada comando con sudo queda registrado con el nombre de quien lo corrió.

Qué ganás con una cuenta propia

Es de las primeras cosas que conviene hacer al recibir un VPS, antes de instalar nada.

  • Un freno antes de lo destructivo. Como root, un rm -rf con la ruta mal escrita se ejecuta sin preguntar. Con tu usuario, lo que toca el sistema necesita sudo adelante, y ese prefijo obliga a mirar el comando una vez más.
  • Un registro con nombre. Cada vez que alguien usa sudo, el sistema anota quién, cuándo, desde qué terminal y qué comando. Si tres personas entran como root, el registro solo dice root.
  • Altas y bajas limpias. Cuando alguien deja el equipo, se bloquea su cuenta y listo. Con una contraseña de root compartida, hay que cambiarla y avisarles a todos.
  • Menos blanco para los robots. Los intentos automáticos de entrar por SSH prueban primero con root. Si root no puede entrar por SSH, esos intentos no tienen a quién apuntar.

Por qué no sirve un segundo usuario con UID 0

Algunas recetas crean otra cuenta con el UID 0, el número de root. Para el kernel es root con otro nombre: los archivos que crea, sus procesos y la mayoría de los registros la muestran como root, así que no ganás trazabilidad. Y como SSH decide por el número, si después prohibís el acceso de root, esa cuenta también queda afuera. Lo correcto es un usuario común que pide permiso con sudo cuando lo necesita.

Lo que cambia según la distribución

Debian 12 y 13, Ubuntu 24.04AlmaLinux 9 y 10
Crear la cuentaadduser marta, que pregunta la contraseñauseradd -m marta y después passwd marta
Grupo de administradoressudowheel
sudo instaladoEn Ubuntu, siempre. En Debian, no si al instalar se definió una clave de root: apt install sudoSí
Servicio de SSHsshsshd
Dónde queda el registro de sudojournalctl _COMM=sudo; en Ubuntu, también /var/log/auth.logjournalctl _COMM=sudo o /var/log/secure

En AlmaLinux, adduser existe pero es otro nombre de useradd: no pregunta nada ni pone contraseña.

Crear la cuenta y darle sudo

Conectate como root o con la cuenta que ya tenga privilegios. En Debian y Ubuntu:

adduser marta
usermod -aG sudo marta
id marta
  • adduser crea /home/marta, le copia la configuración básica del intérprete de comandos y te pide la contraseña. El nombre completo y los demás datos son opcionales: Enter para saltearlos.
  • En usermod -aG, la a significa agregar. Sin ella, el usuario queda solo en los grupos que nombrás y pierde el resto.
  • id marta tiene que mostrar sudo entre los grupos (en AlmaLinux, wheel).
  • En AlmaLinux, los comandos son useradd -m marta, passwd marta y usermod -aG wheel marta. El grupo wheel ya viene habilitado en la configuración de sudo.

Pasarle tu clave SSH

Si el servidor todavía acepta contraseñas, lo más directo es copiar la clave desde tu computadora con ssh-copy-id. PowerShell, en Windows, no trae ese comando, pero la segunda línea hace lo mismo:

ssh-copy-id marta@198.51.100.20
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh marta@198.51.100.20 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
  • Si ya apagaste el acceso con contraseña, marta no puede entrar para recibir la clave. Hacelo desde la sesión de root con los comandos de abajo, que copian el authorized_keys de root (si esa clave es tuya) y dejan a marta como dueña.
  • El dueño y los permisos no son un detalle: si la carpeta o el archivo quedan a nombre de root, o con permisos abiertos, SSH ignora la clave sin explicar por qué y vuelve a pedir contraseña.
  • En AlmaLinux, después de copiar a mano, corré restorecon -Rv /home/marta/.ssh para que SELinux le ponga la etiqueta correcta.
  • Si la cuenta es para otra persona, no le copies tu clave: pedile su clave pública y agregala al archivo, una por línea.
mkdir -p /home/marta/.ssh
cp /root/.ssh/authorized_keys /home/marta/.ssh/
chown -R marta:marta /home/marta/.ssh
chmod 700 /home/marta/.ssh
chmod 600 /home/marta/.ssh/authorized_keys

Probar todo antes de cerrar una puerta

Dejá abierta la sesión de root que estás usando: es tu red de seguridad. Los grupos se leen al iniciar sesión, así que la prueba se hace desde una conexión nueva.

  1. En otra terminal, entrá con la cuenta nueva: ssh marta@198.51.100.20. Tiene que entrar con la clave, sin pedir la contraseña del servidor (sí puede pedirte la frase de tu clave, si le pusiste una).
  2. Corré sudo -l: te pide la contraseña de marta y lista qué puede hacer. Tiene que aparecer una línea con ALL.
  3. Probá un comando real, como sudo systemctl status ssh (en AlmaLinux, sshd).
  4. Si la respuesta es que marta no figura en el archivo sudoers, falta el grupo o falta cerrar la sesión y volver a entrar.

Cerrar el acceso de root por SSH

OpenSSH toma el primer valor que encuentra para cada opción, y los archivos de /etc/ssh/sshd_config.d/ se leen antes que el resto de sshd_config, en orden alfabético. Por eso el cambio va en un archivo propio con un nombre que quede primero. En AlmaLinux suele haber otro archivo en esa carpeta con PermitRootLogin yes; el tuyo, con 00 adelante, le gana.

echo "PermitRootLogin no" > /etc/ssh/sshd_config.d/00-sin-root.conf
sshd -t && systemctl restart ssh
sshd -T | grep -i permitrootlogin
  • En AlmaLinux el servicio se llama sshd: systemctl restart sshd.
  • sshd -t revisa la sintaxis antes de reiniciar. Si devuelve un error, no reinicies hasta corregirlo.
  • Si tenés scripts o respaldos que entran como root con clave, usá prohibit-password en lugar de no: root sigue entrando con clave, nunca con contraseña.
  • Probá desde afuera: ssh root@198.51.100.20 tiene que ser rechazado y ssh marta@198.51.100.20 tiene que entrar. Recién ahí cerrá la sesión de root.

Si algo sale mal

SíntomaCausa probableArreglo
La cuenta nueva pide contraseña en vez de usar la clave.ssh o authorized_keys tienen otro dueño o permisos abiertoschown -R marta:marta, permisos 700 y 600 y, en AlmaLinux, restorecon
sudo responde que marta no está en sudoersFalta el grupo, o la sesión se abrió antes de agregarloRevisar con id marta, salir y volver a entrar
La cuenta no tiene carpeta personal y la clave no funcionaSe creó con useradd sin -m en Debian o UbuntuBorrarla con userdel marta y crearla otra vez con adduser
sudo dejó de funcionar para todosSe editó /etc/sudoers a mano y quedó un error de sintaxisEntrar como root y corregirlo con visudo
No entra nadie por SSHSe cerró root antes de probar la cuenta nuevaEn un servidor cloud, la consola de rescate; en un Cloud VPS, pedí ayuda por ticket

Permisos a medida y bajas

Para tocar la configuración de sudo no abras /etc/sudoers con un editor común. Usá visudo -f /etc/sudoers.d/deploy: revisa la sintaxis antes de guardar y no te deja cerrar un archivo roto. Así podés, por ejemplo, permitir que una cuenta de despliegue reinicie un solo servicio sin contraseña:

deploy ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx
  • Para sacarle el permiso a alguien: gpasswd -d marta sudo (o wheel). Rige desde su próxima sesión.
  • Para bloquear la cuenta sin borrarla: usermod -L -e 1 marta. -L bloquea la contraseña y -e 1 vence la cuenta, que es lo que frena también el acceso con clave.
  • Para borrarla del todo: deluser --remove-home marta en Debian y Ubuntu, userdel -r marta en AlmaLinux.
  • El paso siguiente es apagar el acceso con contraseña para todas las cuentas: está en claves SSH para entrar sin contraseña.

Preguntas frecuentes

¿Qué contraseña escribo cuando sudo me la pide?

La de tu propio usuario, no la de root. Después de escribirla, sudo no vuelve a pedirla por unos minutos en esa misma terminal. Así nadie del equipo necesita conocer la contraseña de root.

¿Cómo vuelvo a trabajar como root cuando lo necesito?

Con sudo -i abrís una sesión de root desde tu cuenta. Usala para una tarea puntual y salí con exit: si te quedás adentro toda la tarde, el registro vuelve a decir root en todo y perdés lo que ganaste.

¿Qué hago con el usuario que trajo la imagen del sistema?

Si tu VPS vino con un usuario inicial, como el ubuntu de algunas imágenes, cuando tu cuenta esté probada podés borrarlo, o bloquearlo con usermod -L -e 1 si preferís no tocar nada más. Lo que no conviene es dejar una cuenta con sudo que nadie usa ni revisa.

¿Cerrar root por SSH afecta al cron o a los servicios?

No. PermitRootLogin solo decide quién puede conectarse por SSH. Root sigue existiendo, las tareas programadas y los servicios corren igual, y desde tu cuenta llegás a root con sudo.

Seguí leyendo

¿Preferís que lo veamos juntos? Te atiende una persona.

Si la guía no alcanza para tu caso, contanos qué necesitás: te ayudamos a elegir el plan, a migrar o a configurar tu servidor.

Hablar con un técnico