Favicon

You are here: Home > Gestión de Dispositivos > Apple > macOS > Scripts > Eliminar cuenta de usuario local

Cómo eliminar completamente una cuenta de usuario local

Script bash para macOS que elimina completamente una cuenta de usuario local borrando el registro de Directory Services, el directorio home y la entrada de grupo. Ideal para la baja de empleados.

5 min read

TL;DR

Automatiza tareas repetitivas en dispositivos gestionados usando scripts en Applivery para una gestión de dispositivos eficiente.

Eliminar correctamente una cuenta de usuario en macOS implica más que hacer clic en "Eliminar usuario" en Ajustes del sistema. Ese enfoque puede dejar datos del directorio home, registros de Directory Services y entradas de grupo huérfanas que se acumulan con el tiempo.

Este script va más allá: elimina el registro de usuario de Directory Services, borra el directorio home del disco (/Users/username) y limpia la entrada de grupo asociada — una eliminación completa e irreversible que no deja datos residuales en el equipo. Está diseñado para flujos de trabajo de baja de empleados donde importa empezar desde cero.

Warning

El agente de Applivery para macOS debe estar instalado y activo en el dispositivo. Obtén más información sobre el agente macOS.

Requisitos

Requisito Detalle
Plataforma macOS
Privilegios de ejecución Root (predeterminado en Applivery)
Nombre de usuario El nombre corto de la cuenta a eliminar, pasado como argumento
Warning

Esta acción es irreversible. Una vez eliminado el directorio home, los datos del usuario no pueden recuperarse a menos que exista una copia de seguridad. Verifica siempre el nombre de usuario antes de desplegar.


Configuración

1
Crear el script

Una vez en el panel de Applivery, sigue los pasos descritos aquí para crear un script. Pega el siguiente script en el editor, selecciona Bash como lenguaje, dale un nombre descriptivo (por ejemplo, Eliminar cuenta de usuario local) y haz clic en Crear.

#!/bin/bash

# ---
# Title: Delete Local User & Home Directory
# Description: Completely removes a local user account, its home directory, and its group record.
# Author: Applivery
# Version: 1.0.0
# ---

# ==========================================
# CONFIGURATION
# ==========================================
# The username can be passed as an argument ($1) or hardcoded below
USER_NAME=$1

# ==========================================
# 1. INITIAL CHECKS
# ==========================================

if [[ $EUID -ne 0 ]]; then
  echo "Error: This script must be run as root."
  exit 1
fi

if [ -z "$USER_NAME" ]; then
  echo "Error: No username provided. Usage: $0 <username>"
  exit 1
fi

CURRENT_USER=$(stat -f "%Su" /dev/console)
if [ "$USER_NAME" == "$CURRENT_USER" ]; then
  echo "Error: Cannot delete the currently logged-in user ($USER_NAME)."
  exit 1
fi

id "$USER_NAME" &>/dev/null
if [ $? -ne 0 ]; then
  echo "Error: User '$USER_NAME' does not exist."
  exit 1
fi

# ==========================================
# 2. DELETION PROCESS
# ==========================================
echo "Starting deletion process for user: $USER_NAME..."

dscl . -delete "/Users/$USER_NAME"
if [ $? -eq 0 ]; then
  echo "[SUCCESS] User record removed from Directory Services."
else
  echo "[FAILURE] Failed to remove user record."
  exit 1
fi

if [ -d "/Users/$USER_NAME" ]; then
  rm -rf "/Users/$USER_NAME"
  echo "[SUCCESS] Home directory /Users/$USER_NAME has been deleted."
else
  echo "[INFO] No home directory found at /Users/$USER_NAME."
fi

dscl . -delete "/Groups/$USER_NAME" &>/dev/null

echo "Process complete. User '$USER_NAME' has been fully removed."
exit 0
2
Asignar el script a un dispositivo

Ahora, navega a cualquiera de tus Dispositivos, selecciona la pestaña Scripts, haz clic en el botón + Asignar Script y selecciona el que acabas de crear.

Note

También puedes asignar scripts a Políticas. Para ello, navega a la sección Políticas, selecciona la política deseada y haz clic en la pestaña Scripts. El proceso será el mismo que al asignarlo directamente a un dispositivo individual.

3
Elegir el método de ejecución

Selecciona el método de ejecución que se adapte a tu caso de uso:

Método Comportamiento ¿Recomendado?
Once Se ejecuta una vez por dispositivo cuando se asigna la política. ✅ Recomendado — la eliminación de cuenta es una acción de baja puntual.
Loop Se ejecuta repetidamente en el intervalo configurado (15m, 1h, 6h, 1d, 7d). ❌ No recomendado — la eliminación es irreversible y no debe repetirse.
On demand Solo se ejecuta cuando se activa manualmente desde la app de Self-Service de Applivery o el panel. ✅ También adecuado para bajas puntuales iniciadas por TI.
4
Introducir el nombre de usuario como argumento

El script requiere el nombre corto de la cuenta a eliminar. Introdúcelo en el campo Argumentos (por ejemplo, jsmith). El campo también admite interpolaciones de variables, como {{device.displayName}}.

Haz clic en Añadir para guardar la asignación.

Tip

Como alternativa al campo Argumentos, puedes introducir el nombre de usuario directamente en el script reemplazando USER_NAME=$1 con USER_NAME="el_nombre_usuario". Esto es útil cuando necesitas eliminar la misma cuenta en toda una flota de dispositivos.


Disponible en GitHub

Este script es parte del Repositorio público de scripts de Applivery — una colección de scripts macOS listos para usar para tareas comunes de gestión TI. Puedes usarlo tal cual o adaptarlo a tu flujo de trabajo específico de baja de empleados.

Key Takeaways

  • Los scripts automatizan tareas repetitivas en dispositivos gestionados.
  • Applivery permite crear, subir y asignar scripts.
  • Hay varios métodos de ejecución disponibles (Once, Loop, On-demand).
  • Un repositorio público de scripts ofrece scripts listos para usar.

El script elimina completamente una cuenta de usuario local, su directorio home y el registro de grupo asociado de un dispositivo macOS.

El script requiere macOS, privilegios de root y el nombre de usuario (nombre corto) de la cuenta a eliminar como argumento. El agente de Applivery para macOS también debe estar instalado.

Puedes proporcionar el nombre de usuario como argumento al asignar el script a un dispositivo o política en Applivery, o introducirlo directamente en el script.

En el panel de Applivery, crea un nuevo script, selecciona Bash como lenguaje, pega el código del script, dale un nombre y haz clic en Crear.

Se recomiendan los métodos de ejecución "Once" u "On demand", ya que la eliminación de cuentas es una acción puntual. Evita el método "Loop".

No, esta acción es irreversible. Una vez eliminado el directorio home, los datos del usuario no pueden recuperarse sin una copia de seguridad.

El script está disponible en el Repositorio público de scripts de Applivery en GitHub.

Si el script no encuentra un directorio home para el usuario, omitirá la eliminación del directorio y continuará con el resto del proceso.

Last updated: April 18, 2026