dscl . create /Users/test
dscl . create /Users/test UniqueID 420
dscl . create /Users/test PrimaryGroupID 420
dscl . create /Users/test UserShell /bin/bash
dscl . create /Users/test NFSHomeDirectory /tmp
dscl . create /Users/test RealName Test
dscl . create /Users/test Password test
Esto crea un usuario que es visible en sysprefs / Cuentas.
dscl . create /Users/test Password "*"
Esto oculta al usuario. Asegúrese de citar el "*" o no funcionará.
EDITAR : accidentalmente logré recrear la situación de googletorp de no poder ocultar a un usuario estableciendo su contraseña en "*", y descubrí cómo solucionarlo. Esta vez, había creado un usuario usando dsimport, así:
dsimport /dev/fd/0 /Local/Default I --template StandardUser << EOF
test:*:520:520:Test user:/Users/test:/bin/bash
EOF
Pero en ese comando, se toma el * para representar una contraseña literal de un carácter de *
, por lo que dsimport crea una propiedad AuthenticationAuthority para el usuario y establece la propiedad de contraseña en el hash de sombra *
(que se muestra como ********
en dscl, como para todos contraseñas) Después de eso, intentar establecer la contraseña en "*" usando dscl simplemente sigue configurando la contraseña en un literal *
, en lugar de deshabilitar la contraseña. La solución es eliminar la propiedad no deseada y luego deshabilitar la contraseña:
sudo dscl . delete /Users/test AuthenticationAuthority
sudo dscl . create /Users/test Password "*"
Esto oculta al usuario.