¿Cómo creo cuentas de usuario desde la Terminal en Mac OS X 10.11?

18

Me gustaría poder crear nuevos usuarios en Mac OS X 10.11 de forma remota después de ssh'ing en la máquina. En Mountain Lion, estos pasos fueron listados .

En ejecución

dscl . -create /Users/joeadmin
dscl . -create /Users/joeadmin UserShell /bin/bash
dscl . -create /Users/joeadmin RealName "Joe Admin" 
dscl . -create /Users/joeadmin UniqueID "510"
dscl . -create /Users/joeadmin PrimaryGroupID 20
dscl . -create /Users/joeadmin NFSHomeDirectory /Users/joeadmin
dscl . -passwd /Users/joeadmin password 

dscl . -append /Groups/admin GroupMembership joeadmin

Después de lo anterior, el usuario no se convierte en administrador. ¿Qué sigue?

    
pregunta lobirkeland 03.02.2016 - 15:01

4 respuestas

5

La documentación carece de un paso importante:

reboot

o

sudo reboot

Después del reinicio, el usuario disfruta de visible derechos de administrador en Preferencias del sistema - > Usuarios y grupos.

Pero: incluso sin reiniciar el usuario is administrador ya, simplemente no está visible en el PrefPane. Si inicia sesión como joeadmin inmediatamente después de crear la cuenta (por ejemplo, el cambio rápido de usuario), el rol de administrador es visible desde su cuenta.

    
respondido por el klanomath 03.02.2016 - 15:33
11

Si estás aquí y tu sistema ejecuta algo de 10.10 y más reciente, el comando sysadminctl es tu mejor amigo. Hace mucha magia que DSCL no puede hacer.

Aquí está la salida para sysadminctl:

sysadminctl[21233:29122637] Usage: sysadminctl
    -deleteUser <user name> [-secure || -keepHome]
    -newPassword <new password> -oldPassword <old password> [-passwordHint <password hint>]
    -resetPasswordFor <local user name> -newPassword <new password> [-passwordHint <password hint>]
    -addUser <user name> [-fullName <full name>] [-UID <user ID>] [-password <user password>] [-hint <user hint>] [-home <full path to home>] [-admin] [-picture <full path to user image>]

Pass '-' instead of password in commands above to request prompt.

Entonces querrás hacer:

sudo createhomedir -c 2>&1 | grep -v "shell-init"

Para agregar / eliminar usuarios use dseditgroup:

sudo dseditgroup -o edit -a usernametoadd -t user admin
sudo dseditgroup -o edit -a usernametoadd -t user wheel
    
respondido por el ub3rdud3 24.07.2017 - 16:19
4

Después de muchas pruebas, hice este script para crear cuentas de usuario desde el terminal.

LOCAL_ADMIN_FULLNAME="Joe Admin"     # The local admin user's full name
LOCAL_ADMIN_SHORTNAME="joeadmin"     # The local admin user's shortname
LOCAL_ADMIN_PASSWORD="password"      # The local admin user's password

# Create a local admin user account
sysadminctl -addUser $LOCAL_ADMIN_SHORTNAME -fullName "$LOCAL_ADMIN_FULLNAME" -password "$LOCAL_ADMIN_PASSWORD"  -admin
dscl . create /Users/$LOCAL_ADMIN_SHORTNAME IsHidden 1  # Hides the account (10.10 and above)
mv /Users/$LOCAL_ADMIN_SHORTNAME /var/$LOCAL_ADMIN_SHORTNAME # Moves the admin home folder to /var
dscl . -create /Users/$LOCAL_ADMIN_SHORTNAME NFSHomeDirectory /var/$LOCAL_ADMIN_SHORTNAME # Create new home dir attribute
dscl . -delete "/SharePoints/$LOCAL_ADMIN_FULLNAME's Public Folder" # Removes the public folder sharepoint for the local admin
    
respondido por el lobirkeland 30.03.2017 - 11:30
0

PrimaryGroupID debe configurarse en 80 para crear una cuenta de administrador.

dscl . -create /Users/joeadmin PrimaryGroupID 80

vea este hilo para obtener más información.

También he escrito un guión para este propósito. Aquí está el vínculo global

    
respondido por el Igor Voltaic 16.05.2018 - 11:32

Lea otras preguntas en las etiquetas