ฉันจะสร้างบัญชีผู้ใช้จาก Terminal ใน Mac OS X 10.11 ได้อย่างไร


23

ฉันต้องการที่จะสร้างผู้ใช้ใหม่ใน Mac OS X 10.11 จากระยะไกลหลังจากเข้าสู่เครื่อง บนภูเขาสิงโตขั้นตอนเหล่านี้มีการระบุไว้

วิ่ง

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

หลังจากข้างต้นผู้ใช้จะไม่เป็นผู้ดูแลระบบ อะไรต่อไป


1
ที่เกี่ยวข้องนอกจากนี้ยังมีapple.stackexchange.com/questions/4814และapple.stackexchange.com/questions/112857และgithub.com/MagerValp/CreateUserPkg
bmike

คำตอบ:


6

เอกสารขาดขั้นตอนสำคัญหนึ่งขั้นตอน:

reboot

หรือ

sudo reboot

หลังจากรีบูตผู้ใช้จะได้รับสิทธิ์ของผู้ดูแลระบบในการตั้งค่าระบบ -> ผู้ใช้และกลุ่ม

แต่: ถึงแม้จะไม่ได้ทำการรีบูทผู้ใช้ก็เป็นผู้ดูแลอยู่แล้ว แต่ก็ไม่สามารถมองเห็นได้ใน PrefPane หากคุณเข้าสู่ระบบเป็น joeadmin ทันทีหลังจากสร้างบัญชี (เช่นการสลับผู้ใช้อย่างรวดเร็ว) บทบาทผู้ดูแลระบบจะมองเห็นได้จากภายในบัญชีของเขา


คำตอบที่ดี ฉันจะแสดงความคิดเห็นต่อ OP เพื่อถามว่าบัญชีใดที่ไม่ใช่ผู้ดูแลระบบดูเหมือนจะขุดลงไปในวิธีที่พวกเขาใช้ผู้ใช้หรือทดสอบการเป็นสมาชิกกลุ่มผู้ดูแลระบบ การออกจากระบบอาจเป็นสิ่งที่พวกเขาต้องการสำหรับผู้ใช้ปัจจุบันเพื่ออ่านผู้ใช้ใหม่ในฐานะผู้ดูแลระบบ ...
bmike

13

หากคุณอยู่ที่นี่และระบบของคุณกำลังทำงานตั้งแต่ 10.10 ขึ้นไปคำสั่ง sysadminctl เป็นเพื่อนที่ดีที่สุดของคุณ มันวิเศษมากที่ DSCL ทำไม่ได้

นี่คือผลลัพธ์สำหรับ 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.

จากนั้นคุณจะต้องทำ:

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

หากต้องการเพิ่ม / ลบผู้ใช้ให้ใช้ 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"ยังสร้างโฟลเดอร์ใน/var/setupการติดตั้งใหม่ทั้งหมด
Burcardo

@Burcardo ไม่เป็นไรตราบใดที่บัญชีใช้งานได้และผู้ใช้สามารถใช้รหัสผ่านเพื่อเปลี่ยนรหัสผ่านของตนเองได้ อันที่จริงไม่มีเครื่องใดของฉันมีปัญหาใด ๆ กับโฟลเดอร์ที่ถูกสร้างขึ้น
ub3rdud3

4

หลังจากการทดสอบมากฉันได้สร้างสคริปต์นี้เพื่อสร้างบัญชีผู้ใช้จากเทอร์มินัล

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

คุณสามารถกำจัดบรรทัด mv / ผู้ใช้ / $ LOCAL_ADMIN_SHORTNAME / var / $ LOCAL_ADMIN_SHORTNAME # ย้ายโฟลเดอร์ผู้ดูแลระบบไปที่ / var ด้วยการตั้งค่าสถานะในคำสั่ง sysadminctl ของคุณ-home / var / $ LOCAL_ADMIN_SHORTNAME
ub3ud17

0

PrimaryGroupIDต้องถูกตั้งค่าเป็น80เพื่อสร้างบัญชีผู้ดูแลระบบ

dscl . -create /Users/joeadmin PrimaryGroupID 80

ตรวจสอบหัวข้อนี้สำหรับข้อมูลเพิ่มเติม

ฉันยังเขียนสคริปต์เพื่อจุดประสงค์นี้ นี่คือลิงค์ส่วนสำคัญ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.