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

Source: https://docs.applivery.com/es/device-management/apple/macos/scripts/delete-local-user/  •  Last updated: 2026-04-18

**Answers:** ¿Qué hace el script de eliminación de usuarios macOS? · ¿Cuáles son los requisitos para usar el script de eliminación de usuarios macOS? · ¿Cómo proporciono el nombre de usuario al script de eliminación de usuarios macOS? · ¿Cómo creo el script de eliminación de usuarios en Applivery? · ¿Qué método de ejecución debo usar para el script de eliminación de usuarios? · ¿Es reversible el script de eliminación de usuarios macOS? · ¿Dónde puedo encontrar el script de eliminación de usuarios macOS? · ¿Qué ocurre si no se encuentra el directorio home del usuario?

**Key topics:** gestión de dispositivos, automatización, scripting, Applivery, MDM, Administradores TI

---

**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](https://docs.applivery.com/es/device-management/apple/apple-policies/agent/#agent-app-for-macos-devices).
:::

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

**Crear el script**

Una vez en el [**panel de Applivery**](https://dashboard.applivery.io/), sigue los pasos descritos [aquí](https://docs.applivery.com/es/device-management/apple/macos/scripts/index) 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**.

```bash
#!/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
```

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

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

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

**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](https://docs.applivery.com/es/device-management/general-settings/dynamic-variables-interpolation-tags/), 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](https://github.com/applivery/applivery-mdm-scripts/tree/main/Apple/Delete%20Admin%20User) — 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.
