# Permisos de administrador temporales (elevación JIT)

> Script bash macOS que concede privilegios de administrador temporales durante 3 minutos a usuarios estándar mediante elevación JIT, con registro de motivo y revocación automática de privilegios.

Source: https://docs.applivery.com/es/device-management/apple/macos/scripts/temporary-admin-rights/  •  Last updated: 2026-06-09

**Answers:** ¿Qué hace el script de derechos de administrador temporales? · ¿Cómo solicitan los usuarios derechos de administrador temporales? · ¿Cuánto tiempo duran los derechos de administrador temporales por defecto? · ¿Puedo personalizar la duración de los derechos de administrador temporales? · ¿Cuáles son los requisitos para usar el script de derechos de administrador temporales? · ¿Cómo despliego el logotipo corporativo en la ventana de elevación? · ¿Cómo asigno el script a los usuarios? · ¿Dónde puedo encontrar el script de derechos de administrador temporales?

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

El principio de mínimo privilegio es el valor predeterminado correcto — pero hay momentos en que un usuario estándar necesita legítimamente realizar una tarea de administrador: instalar software aprobado, cambiar un ajuste de red, ejecutar una herramienta de diagnóstico. La solución incorrecta es conceder privilegios de administrador permanentes. La solución correcta es dar a los usuarios exactamente lo que necesitan, durante exactamente el tiempo que lo necesitan, y revocarlo automáticamente.

Este script implementa elevación Justo-a-Tiempo (JIT): el usuario lo activa desde el Self-Service de Applivery, un diálogo con marca corporativa solicita un motivo y, si el usuario confirma, recibe privilegios de administrador durante exactamente 3 minutos. Cuando expira el tiempo, el script revoca el acceso automáticamente y elimina todos sus rastros — sin LaunchDaemons residuales, sin archivos temporales.

:::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) |
| swiftDialog | Se instala automáticamente si no está presente |
| Marca corporativa | `/var/root/CompanyAssets/logo.png` (opcional, para el diálogo con marca) |

---

## Configuración

**Desplegar el logotipo corporativo (opcional)**

Para una experiencia con marca corporativa, despliega tu logotipo en cada dispositivo gestionado antes de ejecutar este script. El archivo debe estar en `/var/root/CompanyAssets/logo.png`. Puedes distribuirlo usando la [gestión de archivos de Applivery](https://docs.applivery.com/es/device-management/apple/macos/policies/file-management/). Si el archivo no está presente, el diálogo usará el icono predeterminado de swiftDialog en su lugar.

**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, `Derechos de administrador temporales`) y haz clic en **Crear**.
```bash
#!/bin/bash
 
# ---
# Title: Temporary Admin Rights (JIT Elevation)
# Description: Grants local admin privileges to a standard user for 3 minutes with mandatory reason logging.
# Author: Applivery
# Version: 1.1.0
# ---
 
# ==========================================
# 1. PRE-FLIGHT & PREREQUISITES
# ==========================================
 
if [ "$(id -u)" -ne 0 ]; then
  echo "ERROR: This script must be run with sudo." >&2
  exit 1
fi
 
# [... instalación de swiftDialog y detección del usuario actual ...]
 
currentUser=$(/bin/ls -l /dev/console | /usr/bin/awk '{ print $3 }')
[ "$currentUser" = "loginwindow" ] && exit 0
 
if id -Gn "$currentUser" | grep -qw admin; then
  "$DIALOG_CLI" --title "Temporary Admin Rights" --message "You are already an administrator." --button1text "OK" --icon "$brandIconPath" --height 220 --width 480
  exit 0
fi
 
# ==========================================
# 4. ELEVATION DIALOG
# ==========================================
message="You are about to be granted administrator privileges for 3 minutes. Use them responsibly."
 
dialogRaw=$("$DIALOG_CLI" \
  --json \
  --title "Temporary Admin Rights" \
  --message "$message" \
  --textfield "Reason,name=reason,prompt=\"Reason (optional)\"" \
  --button1text "MAKE ME ADMIN" \
  --button2text "CANCEL" \
  --icon "$brandIconPath" \
  --height 280 --width 720 2>&1)
 
[ $? != 0 ] && exit 0
 
# ==========================================
# 5. EXECUTION & AUTO-REVOKE
# ==========================================
scriptDir="/Users/Shared/AdminTime"
scriptFile="$scriptDir/admin_privileges.sh"
launchDaemonFile="/Library/LaunchDaemons/com.applivery.adminprivileges.plist"
 
mkdir -p "$scriptDir"
 
cat << EOF > "$scriptFile"
#!/bin/bash
currentUser=\$(/bin/ls -l /dev/console | /usr/bin/awk '{ print \$3 }')
dseditgroup -o edit -a "\$currentUser" -t user admin
sleep 180
dseditgroup -o edit -d "\$currentUser" -t user admin
rm -rf "$scriptDir"
rm -f "$launchDaemonFile"
EOF
 
chmod +x "$scriptFile"
 
# [... crear LaunchDaemon y cargar ...]

echo "Success: User $currentUser elevated for 3 minutes."
```

**Asignar el script como acción On-demand**

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

Selecciona **On demand** como método de ejecución — esto hace que el script aparezca como acción en el Self-Service de Applivery que los usuarios pueden activar cuando necesiten acceso de administrador temporal.

| Método | Comportamiento | ¿Recomendado? |
|---|---|---|
| **Once** | Se ejecuta una vez por dispositivo. | ❌ No adecuado — el script está diseñado para ser activado bajo demanda por el usuario. |
| **Loop** | Se ejecuta automáticamente en un intervalo recurrente. | ❌ No recomendado — esto concedería privilegios de administrador automáticamente y repetidamente sin interacción del usuario. |
| **On demand** | Solo se ejecuta cuando el usuario lo activa desde el Self-Service. | ✅ Recomendado — el usuario activa la elevación cuando la necesita. |

Este script no requiere ningún argumento. El usuario activo se detecta automáticamente en tiempo de ejecución. Haz clic en **Añadir** para guardar la asignación.

---

## Qué verán los usuarios

Una vez asignado como acción On-demand, el script aparece como un elemento en el Self-Service de Applivery. Cuando el usuario lo activa, se abre una ventana de diálogo con marca corporativa que muestra un mensaje sobre el límite de 3 minutos. El usuario introduce un motivo opcional y hace clic en **MAKE ME ADMIN** para confirmar, o en **CANCEL** para cancelar.

Tras la confirmación, el usuario se añade al grupo `admin`. Después de 3 minutos, el script revoca los privilegios automáticamente y elimina el LaunchDaemon auxiliar y el script auxiliar del dispositivo, sin dejar rastro.

## Personalizar la ventana de elevación

Por defecto, la elevación dura 3 minutos (180 segundos). Para cambiar esto, edita el valor `sleep 180` en el bloque de script auxiliar integrado:

```bash
sleep 180  # Change this value (in seconds) to adjust the duration
```

Por ejemplo, `sleep 600` concedería 10 minutos de acceso de administrador.

---

## 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/Temporary%20Admin%20Rights). Puedes usarlo tal cual o adaptar la marca, la duración y el contenido del diálogo a las necesidades de tu organización.
