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.
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 |
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
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
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.
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.
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. |
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.
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.