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?
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 está visible en el PrefPane. Si inicia sesión como joeadmin inmediatamente después de crear la cuenta (por ejemplo, cambio rápido de usuario), el rol de administrador es visible desde dentro de su cuenta.
gui
podemos agregar un nuevo usuario sin reiniciar el sistema.Si está aquí y su sistema ejecuta algo desde 10.10 y más reciente, 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
sudo createhomedir -c 2>&1 | grep -v "shell-init"
también crea una carpeta en /var/setup
una instalación limpiaDespué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
PrimaryGroupID debe establecerse en 80 para crear una cuenta de administrador.
dscl . -create /Users/joeadmin PrimaryGroupID 80
echa un vistazo a este hilo para más información.
También he escrito un guión para este propósito. Aquí está el enlace esencial
staff
grupo) y luego agregar una membresía secundaria admin
con el dseditgroup
comando. Hay algunas partes de macOS que asumen que todas las cuentas de usuario son miembros de staff
, y sin esa membresía, es posible que su cuenta de administrador no pueda hacer algunas cosas que incluso las cuentas estándar (no administrativas) pueden hacer.
bmike