Tema: macos
-
System Integrity Protection y el Signed System Volume: qué protegen, y por qué no desactivarlos
SIP restringe incluso a root la posibilidad de modificar rutas del sistema protegidas o procesos protegidos; el Signed System Volume sella criptográficamente todo el volumen del sistema y lo verifica en cada arranque. Juntos explican por qué /usr/local es escribible pero /usr no lo es, y por qué desactivar SIP no es una solución legítima ante un error de permisos.
-
Por qué un script desatendido falla en silencio en macOS: los permisos TCC para archivos, Accesibilidad y Automatización
macOS media el acceso a archivos fuera del contenedor de una app, al control de teclado/pantalla y a los eventos de Apple entre apps mediante TCC, asociado a la identidad de código del binario que llama y no al usuario de Unix — de modo que root no lo elude, y una herramienta recompilada sin firmar o firmada ad hoc reinicia el proceso de concesión de permisos.
-
Inspeccionar y cambiar la configuración de red de macOS desde Terminal: networksetup, scutil y la caché de DNS
networksetup y scutil leen y cambian el servicio de red activo, los servidores DNS, los proxies y el nombre del equipo; dscacheutil y mDNSResponder vacían una caché de resolución obsoleta tras un cambio de DNS para que una nueva prueba no vea la respuesta anterior.
-
Leer y escribir preferencias de macOS: defaults, plutil, y por qué cfprefsd oculta una edición directa
defaults y plutil leen y escriben valores dentro de un dominio de preferencias sin analizar a mano la sintaxis de un plist, pero un demonio de caché, cfprefsd (uno por usuario más uno para el sistema), media cada lectura y escritura que realiza una app — de modo que editar directamente el archivo plist en disco a menudo no tiene ningún efecto visible hasta que se invalida la caché.
-
Diagnóstico de rendimiento desde la Terminal de macOS: top, vm_stat, memory_pressure, fs_usage y powermetrics
macOS incluye herramientas de origen BSD y otras específicas de Apple que se solapan con lo que top/vmstat/iostat/strace hacen en Linux, pero con otros nombres, unidades y requisitos de privilegios: top -o cpu, vm_stat, memory_pressure, iostat, fs_usage, powermetrics y sample <pid>.
-
Administrar FileVault desde la línea de comandos: estado, claves de recuperación, token seguro y token de arranque
fdesetup muestra y cambia el estado de FileVault y la gestión de la clave de recuperación; sysadminctl y profiles indican qué cuentas pueden desbloquear el disco y si hay un token de arranque depositado en un servicio de gestión de dispositivos, algo relevante antes de confiar en el aprovisionamiento de cuentas gestionado por MDM.
-
zsh como shell predeterminado de macOS: qué falla en un script escrito para bash
Desde macOS 10.15, zsh es el shell de inicio de sesión e interactivo predeterminado; un script que da por hecho la división de palabras de bash, los arrays con índice cero o un globbing permisivo puede comportarse de otro modo o fallar en la sesión interactiva zsh de un agente en un Mac, sin contar siquiera la antigüedad de /bin/bash.
-
Verificar que el software de macOS está firmado, notariado y sin modificar: spctl, codesign, stapler
Antes de ejecutar software obtenido fuera de la App Store, spctl, codesign y xcrun stapler confirman que está firmado, notariado por Apple y sin modificar desde la firma. Verificación puramente defensiva: nada aquí desactiva ni evita estas comprobaciones en software del que no se confía.
-
Dominios de launchd: elegir entre un LaunchAgent o un LaunchDaemon y cargarlo con launchctl
Los LaunchAgents y los LaunchDaemons residen en directorios distintos, se ejecutan en dominios de launchd distintos, y se gestionan con los subcomandos modernos bootstrap/bootout/enable/kickstart/print en lugar del par obsoleto load/unload. Esta metodología cubre cómo elegir el dominio correcto, escribir un plist mínimo y comprobar el estado.
-
Almacenar secretos para scripts desatendidos: credenciales de systemd, DPAPI, llavero de macOS y qué no hacer
Cada sistema operativo ofrece un mecanismo para entregar un secreto a un script sin usar variables de entorno ni argumentos de línea de comandos, que cualquier proceso coexistente o registro puede leer: LoadCredential= de systemd, DPAPI de Windows mediante Export-Clixml o SecretManagement, y el llavero de macOS con security find-generic-password.
-
Comprobar los perfiles de configuración y el estado de inscripción en MDM desde Terminal con profiles
profiles enumera los perfiles de configuración instalados e informa del estado de inscripción en MDM; algunos ajustes, como el depósito del token de arranque (bootstrap token escrow) o el aplazamiento forzado de actualizaciones, solo pueden establecerse desde un servicio de gestión de dispositivos, y nunca desde una sesión local de Terminal.
-
Instalar actualizaciones de macOS de forma desatendida desde la línea de comandos con softwareupdate
softwareupdate enumera, instala y reinicia para aplicar actualizaciones sin el panel gráfico de Configuración del Sistema, pero --fetch-full-installer necesita autenticación de propietario de volumen en Apple silicon, y una política de aplazamiento gestionada puede ocultar por completo las actualizaciones a --list. Esta metodología cubre ambos casos.
-
Comparativa de sincronización de reloj: chrony, systemd-timesyncd, w32tm, timed de macOS y xntpd de AIX
Referencia rápida para los demonios de hora que se usan en Linux, Windows, macOS y AIX sobre cómo comprobar si el reloj de un equipo está realmente sincronizado. No profundiza en ninguna herramienta concreta, porque la comprobación es la misma en todas partes: ¿hay una fuente configurada y está el equipo sincronizado ahora mismo?
-
Comprobar que existe una copia de Time Machine antes de un cambio arriesgado: tmutil y snapshots locales de APFS
tmutil informa del destino de la copia, de la marca de tiempo de la última copia completada y puede iniciar una nueva y esperar a que termine. Los snapshots locales de APFS solo son una comodidad en el mismo disco y nunca sustituyen la confirmación de una copia fuera de él antes de una operación destructiva.
-
Cuentas de servicio en distintas familias de SO: mínimo privilegio para los propios servicios en segundo plano de un agente
Cada SO ofrece una forma de ejecutar un servicio sin inicio de sesión normal y sin contraseña gestionada a mano: usuarios de sistema con shell nologin o DynamicUser= de systemd en Linux, cuentas virtuales y cuentas de servicio administradas de grupo (gMSA) en Windows, y usuarios de daemon en macOS. Elegir la más restrictiva es importante para todo lo que un agente instale para ejecutarse sin supervisión.
-
Ejecutar Homebrew sin interacción en un agente de compilación: NONINTERACTIVE, variables de entorno y Brewfile
El instalador de Homebrew, su actualización automática, la analítica y las versiones de las fórmulas pueden controlarse sin ningún aviso interactivo en un runner de CI, y un Brewfile hace reproducible el conjunto instalado entre runners.
-
Consultar el registro unificado en macOS: log show, log stream y predicados
El registro unificado se almacena en un formato binario comprimido, no en archivos de texto, por lo que hay que consultarlo con la herramienta log. Esta metodología cubre log show y log stream con predicados, ventanas de tiempo, salida JSON y el empaquetado del almacén con log collect para analizarlo después.
-
Confiar en una CA privada en macOS y Windows y comprobar que el cambio realmente se aplicó
macOS confía en una CA raíz para todo el sistema mediante el llavero System con `security add-trusted-cert`, y Windows mediante el almacén Root del equipo local con Import-Certificate o certutil -addstore. Ninguno de los dos cambios da indicación alguna salvo que se verifique por separado, y ambos se diferencian de una decisión de confianza por usuario o por navegador.
-
Comparación de modelos de permisos de archivos: bits POSIX, ACL POSIX, ACL NFSv4/ZFS, NTFS y ACL de macOS
Los bits de modo POSIX, las ACL POSIX, el modelo de ACL de NFSv4/ZFS, las ACL de NTFS y las ACL de macOS expresan el control de acceso de forma distinta, y casi nada de ello sobrevive al copiar un archivo de un sistema a otro. Esta referencia recoge los comandos de lectura y escritura de cada modelo y lo que se pierde en silencio durante la transferencia.
-
Opciones de arranque de macOS para administradores: Recuperación, Utilidad de Seguridad de Arranque y Primeros auxilios de Utilidad de Discos
La Recuperación de macOS (a la que se accede de forma distinta en Macs con Apple silicon e Intel), la Utilidad de Seguridad de Arranque, el Modo seguro y Primeros auxilios de Utilidad de Discos cubren la mayor parte de la recuperación no destructiva en un Mac bajo control físico del administrador; la Protección de Integridad del Sistema (SIP) limita lo que puede modificar incluso un proceso de administrador fuera de estas vías.
Legible por máquina: JSON