36 votos

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

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

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é es lo siguiente?

20voto

ub3rdud3 Puntos 171

Si estás aquí y tu sistema está ejecutando cualquier cosa desde 10.10 y más reciente, el comando sysadminctl es tu mejor amigo. Hace un montón de magia que DSCL no puede hacer.

Aquí está la salida de 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 añadir/eliminar usuarios utilice dseditgroup:

sudo dseditgroup -o edit -a usernametoadd -t user admin
sudo dseditgroup -o edit -a usernametoadd -t user wheel

0 votos

El comando sudo createhomedir -c 2>&1 | grep -v "shell-init" también crea una carpeta en /var/setup en una instalación limpia

1 votos

@Burcardo eso está bien mientras 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.

8voto

klanomath Puntos 19587

A la documentación le falta un paso importante:

reboot

o

sudo reboot

Después del reinicio el usuario disfruta visible derechos de administrador en Preferencias del Sistema -> Usuarios y Grupos.

Pero: incluso sin reiniciar el usuario es admin ya - no es visible en el PrefPane. Si te conectas como joeadmin inmediatamente después de crear la cuenta (por ejemplo, un cambio rápido de usuario) el rol de admin es visible desde su cuenta.

0 votos

Buena respuesta. Iba a comentar al OP para preguntar qué hace la cuenta no es admin parece como para indagar en cómo estaban usando el usuario o probando la pertenencia al grupo de administradores. Dependiendo de cómo lo comprueben, un cierre de sesión podría ser todo lo que necesitan para que su usuario actual lea el nuevo usuario como admin...

0 votos

@klanomath ¿Entonces sin reiniciar no podemos añadir un nuevo usuario desde la línea de comandos? Sin embargo, usando gui podemos añadir un nuevo usuario sin necesidad de reiniciar el sistema.

5voto

lobirkeland Puntos 10

Después de muchas pruebas, he hecho 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

1 votos

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 una bandera en su comando sysadminctl -home /var/$LOCAL_ADMIN_SHORTNAME

1voto

Igor Voltaic Puntos 76

PrimaryGroupID tienen que ser ajustados a 80 para crear una cuenta de administrador.

dscl . -create /Users/joeadmin PrimaryGroupID 80

ver este hilo para más información.

También he escrito un script para este propósito. Aquí está el enlace gist

1 votos

Es mejor establecer las cuentas de administrador a 20 (el staff grupo), y luego agregar una membresía secundaria a admin con el dseditgroup de mando. Hay algunas partes de MacOS que asumen que todas las cuentas de usuario son miembros de staff Y sin esa membresía, su cuenta de administrador puede no ser capaz de hacer algunas cosas que incluso las cuentas estándar (no administrativas) pueden hacer.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X