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

23

Me gustaría poder crear nuevos usuarios en Mac OS X 10.11 de forma remota después de ingresar a la máquina. En Mountain Lion, se enumeraron estos pasos .

Corriendo

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?

Lobirkeland
fuente

Respuestas:

6

La documentación carece de un paso importante:

reboot

o

sudo reboot

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

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

klanomath
fuente
Buena respuesta. Iba a comentar al OP para preguntarle qué aspecto tiene la cuenta de administrador para investigar cómo estaban usando al usuario o probando la membresía del grupo de administradores. Dependiendo de cómo lo verifiquen, un
cierre de
13

Si está aquí y su sistema está ejecutando desde 10.10 y versiones posteriores, el comando sysadminctl es su 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
ub3rdud3
fuente
el comando sudo createhomedir -c 2>&1 | grep -v "shell-init"también crea una carpeta en /var/setupuna instalación limpia
Burcardo
@Burcardo está bien siempre y cuando las cuentas funcionen, y los usuarios puedan usar passwd para cambiar sus propias contraseñas. De hecho, ninguna de mis máquinas ha tenido problemas con la creación de esa carpeta.
ub3rdud3
4

Después de muchas pruebas, hice este script para crear cuentas de usuario desde la 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
Lobirkeland
fuente
puede deshacerse de la línea mv / Users / $ LOCAL_ADMIN_SHORTNAME / var / $ LOCAL_ADMIN_SHORTNAME # Mueve la carpeta de inicio del administrador a / var con un indicador en su comando sysadminctl -home / var / $ LOCAL_ADMIN_SHORTNAME
ub3rdud3
0

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

dscl . -create /Users/joeadmin PrimaryGroupID 80

mira este hilo para más información.

También escribí un guión para este propósito. Aquí está el enlace esencial

Igor Voltaic
fuente