Qué comandos (o secuencias de comandos) pueden crear una cuenta de usuario completamente funcional en Mountain Lion, ejecutándose solo desde la línea de comandos a través de terminal o ssh.
Parece que un par de respuestas existentes podrían funcionar, pero me preguntaba si había una secuencia de comandos breve o una herramienta para crear cuentas de usuario completamente funcionales en Mountain Lion.
Aquí hay un script de shell que escribí en el trabajo para manejar esto como parte del proceso de NetInstall (creando una cuenta de administrador local automáticamente durante el proceso de creación de imágenes).
#!/bin/sh
. /etc/rc.common
dscl . create /Users/administrator
dscl . create /Users/administrator RealName "Administrator Account"
dscl . create /Users/administrator hint "Password Hint"
dscl . create /Users/administrator picture "/Path/To/Picture.png"
dscl . passwd /Users/administrator thisistheaccountpassword
dscl . create /Users/administrator UniqueID 501
dscl . create /Users/administrator PrimaryGroupID 80
dscl . create /Users/administrator UserShell /bin/bash
dscl . create /Users/administrator NFSHomeDirectory /Users/administrator
cp -R /System/Library/User\ Template/English.lproj /Users/administrator
chown -R administrator:staff /Users/administrator
Algunas notas para mencionar:
Para automatizar aún más esto, la siguiente línea se puede usar para obtener la siguiente identificación de usuario "disponible" si está ejecutando en una Mac que ya tiene usuarios configurados.
LastID=`dscl . -list /Users UniqueID | awk '{print $2}' | sort -n | tail -1`
NextID=$((LastID + 1))
Entonces, la línea correspondiente en la respuesta anterior de bispymusic podría cambiarse:
dscl . create /Users/administrator UniqueID $NextID
Tengo algunas actualizaciones sobre la respuesta anterior.
dscl / -append /Groups/admin GroupMembership newUserName
Este comando puede usarse para hacer que el usuario tenga acceso administrativo. Si no se proporciona este comando, el usuario se establecerá automáticamente como usuario estándar.
dscl . create /Users/newUserName PrimaryGroupID 80
Esto establece la identificación del grupo principal del usuario. 80 significa administrador y 20 significa personal . Y el ajuste a 20 no hará que el usuario sea estándar. A menos que no se mencione el primer comando.
Aquí hay un script de shell que escribí para agregar nuevos usuarios en Max OS X usando la línea de comando. Funciona igual que si fuera Linux. Siéntase libre de editar uno para sus necesidades personales. Simplemente asígnele el nombre useradd.sh y configure los permisos correctos ( chmod 0700 useradd.sh
en mi caso). Gracias a bispymusic, Alex Leach, Kent por sus contribuciones.
OS X High Sierra probado
#!/bin/sh
if [[ `id -u` != 0 ]]; then
echo "Must be root to run script"
exit
fi
read -p "Enter user name and press [ENTER]: " UserName
if [[ $UserName == `dscl . -list /Users UniqueID | awk '{print $1}' | grep -w $UserName` ]]; then
echo "User already exists!"
exit 0
fi
read -p "Enter real name and press [ENTER]: " RealName
read -p "Enter PrimaryGroupID (80 - admin, 20 - user) and press [ENTER]: " PrimaryGroupID
LastID=`dscl . -list /Users UniqueID | awk '{print $2}' | sort -n | tail -1`
NextID=$((LastID + 1))
. /etc/rc.common
dscl . create /Users/$UserName
dscl . create /Users/$UserName RealName $RealName
read -p "Enter password hint and press [ENTER]: " PasswordHint
dscl . create /Users/$UserName hint $PasswordHint
PasswordHint=0
echo " "
read -s -p "Enter Account Password and press [ENTER]: " AccountPassword
echo " "
read -s -p "Enter Account Password again and press [ENTER]: " AccountPasswordRepeat
if [[ $AccountPassword == $AccountPasswordRepeat ]]; then
dscl . passwd /Users/$UserName $AccountPassword
AccountPassword=0
else
echo "Passwords do not match!"
exit 1
fi
echo " "
dscl . create /Users/$UserName UniqueID $NextID
dscl . create /Users/$UserName PrimaryGroupID $PrimaryGroupID
dscl . create /Users/$UserName UserShell /bin/bash
dscl . create /Users/$UserName NFSHomeDirectory /Users/$UserName
createhomedir -u $UserName -c
echo " "
echo "New user `dscl . -list /Users UniqueID | awk '{print $1}' | grep -w $UserName` has been created with unique ID `dscl . -list /Users UniqueID | grep -w $UserName | awk '{print $2}'`"
puedes obtener el mismo de mi esencia
NextID=$((`dscl . -list /Users UniqueID | awk '{print $2}' | sort -n | tail -1` + 1))
, pero se ve mejor y más claro de la forma en que está ahora.
bmike
usuario52842
bispymusic
Kent
Alex Leach
cp -R ...
;chown -R ...
), puede usar el comandocreatehomedir -u administrator
.createhomedir
también tiene una página man.boerre