ฉันต้องการสร้างผู้ใช้ใหม่ใน Mac OS X 10.5 จากระยะไกลหลังจากที่เข้าสู่เครื่อง ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันต้องการสร้างผู้ใช้ใหม่ใน Mac OS X 10.5 จากระยะไกลหลังจากที่เข้าสู่เครื่อง ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
ใช้คำสั่ง dscl ตัวอย่างนี้จะสร้างผู้ใช้ "luser" เช่น:
dscl . -create /Users/luser
dscl . -create /Users/luser UserShell /bin/bash
dscl . -create /Users/luser RealName "Lucius Q. User"
dscl . -create /Users/luser UniqueID "1010"
dscl . -create /Users/luser PrimaryGroupID 80
dscl . -create /Users/luser NFSHomeDirectory /Users/luser
จากนั้นคุณสามารถใช้ passwd เพื่อเปลี่ยนรหัสผ่านของผู้ใช้หรือใช้:
dscl . -passwd /Users/luser password
คุณจะต้องสร้าง / Users / luser สำหรับโฮมไดเร็กตอรี่ของผู้ใช้และเปลี่ยนความเป็นเจ้าของเพื่อให้ผู้ใช้สามารถเข้าถึงได้และให้แน่ใจว่า UniqueID นั้นแท้จริงแล้วไม่ซ้ำกัน
บรรทัดนี้จะเพิ่มผู้ใช้ในกลุ่มผู้ดูแลระบบ:
dscl . -append /Groups/admin GroupMembership luser
useradd
ไวยากรณ์
PrimaryGroupID 80
เป็นadmin
เพื่อให้luser
สามารถใช้งานsudo
แม้ว่าคุณจะไม่เพิ่มเขาไปยังกลุ่มผู้บริหารของ
(คำตอบนี้ควรได้รับการพิจารณาเป็นภาคผนวกเพื่อเติมในช่องว่างบางอย่างในขั้นตอนของพาลเมอร์)
ในการเลือก UniqueID ที่ไม่ได้ใช้สำหรับผู้ใช้ใหม่คุณสามารถใช้:
maxid=$(dscl . -list /Users UniqueID | awk 'BEGIN { max = 500; } { if ($2 > max) max = $2; } END { print max + 1; }')
newid=$((maxid+1))
... จากนั้นใช้ลำดับของคำสั่ง dscl ที่ผู้ใช้สร้างบัญชีและสร้างโฮมไดเร็กตอรี่ของผู้ใช้ใหม่ด้วย:
cp -R /System/Library/User\ Template/English.lproj /Users/luser
chown -R luser:staff /Users/luser
if [[ "$(sw_vers -productVersion)" != 10.[0-5].* ]]; then
# Set ACL on Drop Box in 10.6 and later
chmod +a "user:luser allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit" /Users/luser/Public/Drop\ Box
fi
(มีคำสั่ง createhomedir แต่มันไม่ทำงานเมื่อฉันทดสอบ)
sudo createhomedir -s
(IIRC) ใน Open Directory Replicas / Fileshares และพวกเขาสร้างไดเรกทอรีภายในบ้านอย่างมีความสุข
dscl -list
จำกัด อยู่ที่ 256 ผลลัพธ์ดังนั้นหากคุณมีผู้ใช้มากกว่า 256 รายเทคนิคนี้จะไม่รับประกัน UID ที่ไม่ซ้ำ
หากคุณมีผู้ใช้จำนวนมากที่จะสร้างมันเป็นไปได้ที่จะสร้างไฟล์ข้อความที่มีโครงสร้างและส่งต่อdsimport
ไปยังเพื่อทำงาน
คู่มือการบริหารบรรทัดคำสั่งของ Apple มีทั้งบทเกี่ยวกับผู้ใช้และกลุ่ม
อีกวิธีหนึ่งในการเลือกและเลือก ID ผู้ใช้ที่ไม่ซ้ำกันก่อนที่จะสร้างบัญชีคือการดูรายการและตรวจสอบว่าคุณต้องการใช้ไม่ได้อยู่ที่นั่น:
sudo dscl . list /Users uid
sudo dscl . list groups gid
มีประโยชน์ถ้าคุณต้องการใช้ ID ที่แน่นอน
dscl -list
จำกัด อยู่ที่ 256 ผลลัพธ์ดังนั้นหากคุณมีผู้ใช้มากกว่า 256 รายเทคนิคนี้จะไม่รับประกัน UID ที่ไม่ซ้ำ
grep
เป็นไปตามที่id
คุณมีในใจที่จะใช้สำหรับผู้ใช้ใหม่
ฉันใช้ประโยชน์จากคำตอบต่าง ๆ ที่นี่เพื่อหาสิ่งที่ฉันคิดว่าเป็นสคริปต์ที่ดีในการสร้างบัญชีผู้ใช้ เป็นที่ยอมรับว่านี่ไม่ได้ออกแบบมาสำหรับการเรียกใช้คำสั่งในเวลาเดียวจาก ssh; มันถูกออกแบบมาให้ทำงานสคริปต์เมื่อรวบรวมภาพแพคเกจของ OS X (สร้างโดยCasper ImagingหรือInstaDMG )
#!/bin/bash
# This script creates a user account under Mac OS X
# (tested with 10.5 and 10.6; likely works with 10.4 but not earlier)
# Written by Clinton Blackmore, based on work at
# http://serverfault.com/questions/20702
# === Typically, this is all you need to edit ===
USERNAME=joeadmin
FULLNAME="Joe Admin"
PASSWORD="hard_to_hack"
# A list of (secondary) groups the user should belong to
# This makes the difference between admin and non-admin users.
# Leave only one uncommented
#SECONDARY_GROUPS="" # for a non-admin user
SECONDARY_GROUPS="admin _lpadmin _appserveradm _appserverusr" # for an admin user
# ====
if [[ $UID -ne 0 ]]; then echo "Please run $0 as root." && exit 1; fi
# Find out the next available user ID
MAXID=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
USERID=$((MAXID+1))
# Create the user account
dscl . -create /Users/$USERNAME
dscl . -create /Users/$USERNAME UserShell /bin/bash
dscl . -create /Users/$USERNAME RealName "$FULLNAME"
dscl . -create /Users/$USERNAME UniqueID "$USERID"
dscl . -create /Users/$USERNAME PrimaryGroupID 20
dscl . -create /Users/$USERNAME NFSHomeDirectory /Users/$USERNAME
dscl . -passwd /Users/$USERNAME $PASSWORD
# Add use to any specified groups
for GROUP in $SECONDARY_GROUPS ; do
dseditgroup -o edit -t user -a $USERNAME $GROUP
done
# Create the home directory
createhomedir -c > /dev/null
echo "Created user #$USERID: $USERNAME ($FULLNAME)"
สคริปต์ทำให้คุณสามารถระบุกลุ่มที่ผู้ใช้ควรอยู่ ดูเหมือนว่าสิ่งนี้อาจแตกต่างกันไปขึ้นอยู่กับเวอร์ชั่นของ OS X ที่คุณใช้งาน ฉันได้รับผลลัพธ์ที่แตกต่างเมื่อฉันเรียกใช้id
ในฐานะผู้ดูแลระบบบน OS X 10.6 มากกว่าที่ฉันทำเมื่อใช้งานเป็นผู้ดูแลระบบบน OS X 10.5
dscl -list
จำกัด อยู่ที่ 256 ผลลัพธ์ดังนั้นหากคุณมีผู้ใช้มากกว่า 256 รายเทคนิคนี้จะไม่รับประกัน UID ที่ไม่ซ้ำ
ผมเริ่มห่อเล็ก ๆ น้อย ๆเกี่ยวกับการdscl
ที่จะใช้useradd
พารามิเตอร์ 's - มันไม่สมบูรณ์ (หรือไม่ผมคิดว่ามันอาจจะเป็นบางสิ่งบางอย่างไม่ได้เป็นไปได้บน OS X) แต่ฉันใช้มันเพื่อทำการสร้างผู้ใช้บางส่วน
เฟรมเวิร์กอยู่ที่นั่นสำหรับพารามิเตอร์ทั้งหมดดังนั้นหากคุณต้องการใช้ประโยชน์จากฟีเจอร์โซเชียลที่ยอดเยี่ยมของ GitHub มันง่ายที่จะทำ
single_user
โหมด (การตั้งค่าความปลอดภัย) จากนั้นคุณจะต้องรีบูตเครื่องค้างไว้Command-S
เพื่อรับสิทธิ์การเขียนดิสก์ต่อรายละเอียดบนหน้าจอ และจากนั้นrm /var/db/.AppleSetupDone
ซึ่งจะช่วยให้คุณสร้างบัญชีผู้ดูแลระบบใหม่ หวังว่านี้จะช่วยให้ใครบางคน