Favicon

You are here: Home > Gestión de Dispositivos > Apple > macOS > Scripts > Permisos de administrador temporales

Cómo conceder derechos de administrador temporales con 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.

5 min read

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.

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

1
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. Si el archivo no está presente, el diálogo usará el icono predeterminado de swiftDialog en su lugar.

2
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, Derechos de administrador temporales) y haz clic en Crear.

#!/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."
3
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.

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.

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:

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

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.

Concede a los usuarios macOS estándar privilegios de administrador temporales durante un período establecido (3 minutos por defecto) bajo petición, luego los revoca automáticamente.

Los usuarios activan el script desde el Self-Service de Applivery, que les solicita un motivo antes de conceder los privilegios.

Por defecto, el script concede privilegios de administrador durante 3 minutos.

Sí, puedes modificar el valor `sleep` en el script para ajustar la duración en segundos.

Requiere macOS, privilegios de root para la ejecución y el agente de Applivery para macOS. swiftDialog se instala automáticamente si no está presente.

Despliega tu logotipo corporativo en `/var/root/CompanyAssets/logo.png` en cada dispositivo gestionado usando la gestión de archivos de Applivery.

Asigna el script como acción On-demand a dispositivos o políticas dentro del panel de Applivery.

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

Last updated: June 9, 2026