Bagaimana cara membuat akun pengguna dari Terminal di Mac OS X 10.11?

23

Saya ingin dapat membuat pengguna baru di Mac OS X 10.11 dari jarak jauh setelah ssh'ing ke dalam mesin. Di Mountain Lion, langkah-langkah ini terdaftar .

Lari

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

Setelah di atas, pengguna tidak menjadi admin. Apa selanjutnya?

lobirkeland
sumber

Jawaban:

6

Dokumentasi tidak memiliki satu langkah penting:

reboot

atau

sudo reboot

Setelah reboot, pengguna menikmati hak admin yang terlihat di System Preferences -> Users and Groups.

Tapi: bahkan tanpa me-reboot pengguna adalah admin sudah - itu hanya tidak terlihat di PrefPane. Jika Anda masuk sebagai joeadmin segera setelah membuat akun (mis. Perpindahan pengguna cepat) peran admin terlihat dari dalam akunnya.

klanomath
sumber
Jawaban bagus. Saya akan mengomentari OP untuk menanyakan apakah akun tersebut bukan admin yang ingin menggali bagaimana mereka menggunakan pengguna atau menguji keanggotaan grup admin. Bergantung pada bagaimana mereka memeriksa, logout mungkin yang mereka butuhkan untuk pengguna saat ini untuk membaca pengguna baru sebagai admin ...
bmike
13

Jika Anda di sini dan sistem Anda menjalankan apa pun mulai dari 10.10 dan yang lebih baru, perintah sysadminctl adalah sahabat Anda. Itu banyak keajaiban yang tidak bisa dilakukan DSCL.

Inilah output untuk 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.

Maka Anda akan ingin melakukan:

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

Untuk menambah / menghapus pengguna, gunakan dseditgroup:

sudo dseditgroup -o edit -a usernametoadd -t user admin
sudo dseditgroup -o edit -a usernametoadd -t user wheel
ub3rdud3
sumber
perintah ini sudo createhomedir -c 2>&1 | grep -v "shell-init"juga membuat folder /var/setuppada instalasi yang bersih
Burcardo
@ Burcardo tidak apa-apa asalkan akun berfungsi, dan pengguna dapat menggunakan passwd untuk mengubah kata sandi mereka sendiri. Sebenarnya tidak ada mesin saya yang memiliki masalah dengan folder yang sedang dibuat.
ub3rdud3
4

Setelah banyak pengujian, saya membuat skrip ini untuk membuat akun pengguna dari 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
sumber
Anda dapat menyingkirkan garis mv / Users / $ LOCAL_ADMIN_SHORTNAME / var / $ LOCAL_ADMIN_SHORTNAME # Bergerak folder rumah admin ke / var dengan bendera dalam perintah sysadminctl Anda -rumah / var / $ LOCAL_ADMIN_SHORTNAME
ub3rdud3
0

PrimaryGroupID harus disetel ke 80 untuk membuat akun administrator.

dscl . -create /Users/joeadmin PrimaryGroupID 80

lihat utas ini untuk info lebih lanjut.

Saya juga menulis skrip untuk tujuan ini. Inilah tautan intinya

Igor Voltaic
sumber