Error al intentar crear una cuenta en modo de usuario único en OS X Mavericks

3

En OS X Mavericks, estoy tratando de crear una cuenta usando el modo de usuario único, usando la siguiente secuencia de comandos.

#! /bin/bash

# create user
dscl . -create /Users/hiddenuser
dscl . -create /Users/hiddenuser UserShell /bin/bash
dscl . -create /Users/hiddenuser RealName "Hidden User"
dscl . -create /Users/hiddenuser UniqueID "401"
dscl . -create /Users/hiddenuser PrimaryGroupID 20
dscl . -create /Users/hiddenuser NFSHomeDirectory /var/hiddenuser
dscl . -passwd /Users/hiddenuser password

Sin embargo, cuando ejecuto este script, obtengo 6 copias del mismo error:

/System/Library/LaunchDaemons/com.apple.DirectoryServicesLocal.plist: No such file or directory

¿Cómo soluciono esto? ¿Necesito descargar un nuevo /System/Library/LaunchDaemons/com.apple.DirectoryServicesLocal.plist?

Gracias

Nota: He intentado cambiar 401 a otros valores por debajo de 501, y obtengo el mismo resultado.

    
pregunta thepiercingarrow 12.03.2016 - 18:21

1 respuesta

5

Después de comenzar en el modo de usuario único ingresa:

/sbin/fsck -fy
/sbin/mount -uw /

Inicia opendirectoryd:

launchctl load /System/Library/LaunchDaemons/com.apple.opendirectoryd.plist

/System/Library/LaunchDaemons/com.apple.DirectoryServicesLocal.plist ya no existe

Luego ejecuta:

dscl . -create /Users/hiddenuser
dscl . -create /Users/hiddenuser UserShell /bin/bash
dscl . -create /Users/hiddenuser RealName "Hidden User"
dscl . -create /Users/hiddenuser UniqueID "401"
dscl . -create /Users/hiddenuser PrimaryGroupID 20
dscl . -create /Users/hiddenuser NFSHomeDirectory /var/hiddenuser
dscl . -passwd /Users/hiddenuser password

Los comandos generan errores, pero el usuario se crea correctamente. Ejecutar /bin/bash /path/to/script.sh directamente después de cargar opendirectoryd no me funcionó sin una razón aparente. En un segundo intento con un UID > 500 ¡funcionó!

En Yosemite y versiones más recientes de OS X no se recomienda crear un usuario oculto como este. En su lugar, use un UniqueID > 500 gratuito y use un comando adicional:

dscl . -create /Users/hiddenuser IsHidden 1
    
respondido por el klanomath 12.03.2016 - 20:18

Lea otras preguntas en las etiquetas