שאלה כיצד ניתן ליצור חשבונות משתמש מהמסוף ב- Mac OS X 10.5?


אני רוצה להיות מסוגל ליצור משתמשים חדשים ב- Mac OS X 10.5 מרחוק לאחר ssh'ing לתוך המכונה. איך אני עושה זאת?


84
2018-06-05 18:07




אין לי עדיין את המוניטין לענות, אבל אם אתה מחפש איך לעשות את זה single_user מצב (איפוס אבטחה), יהיה עליך לאתחל את האחיזה Command-S, לקבל גישה לכתוב על הדיסק לכל הפרטים על המסך, ולאחר מכן rm /var/db/.AppleSetupDone אשר יאפשר לך ליצור חשבון מנהל חדש. מקווה שזה עוזר למישהו - New Alexandria


תשובות:


השתמש בפקודה 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

יהיה עליך ליצור / משתמשים / luser עבור ספריית הבית של המשתמש ולשנות בעלות כך שהמשתמש יכול לגשת אליו, ולוודא כי UniqueID הוא למעשה ייחודי.

שורה זו תוסיף את המשתמש לקבוצה של מנהל המערכת:

dscl . -append /Groups/admin GroupMembership luser

80
2018-06-05 18:15



כיצד ניתן לוודא שה- UID הוא ייחודי? - JR Lawhorne
אין דרך אוטומטית; אם אתה סקריפט זה אתה יכול פשוט יש להריץ את "id # # # #" הפקודה ולוודא שהיא מחזירה "אין משתמש כזה" או איזה גרזן כזה. - palmer
זכור להשתמש sudo אם אין לך הרשאות. - Raffi Khatchadourian
BTW, שכן זהו דרך verbose יותר ממה שהוא צריך להיות, אני מועבר פקודות אלה לתוך useradd תחביר. - Xiong Chiamiov
שים לב ש PrimaryGroupID 80 J admin, לכן luser יכול להשתמש sudo גם אם לא תוסיף אותו לקבוצת המנהלים. - ruslo


(תשובה זו צריכה להיחשב נספח למלא כמה החסר בהליך של פאלמר)

כדי לבחור UniqueID שלא נעשה בו שימוש עבור משתמש חדש, תוכל להשתמש ב:

maxid=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
newid=$((maxid+1))

... ואז להשתמש ברצף של פקודות dscl פאלמר נתן ליצור את החשבון, ולאחר מכן ליצור את המדריך החדש של המשתמש החדש עם:

cp -R /System/Library/User\ Template/English.lproj /Users/luser
chown -R luser:staff /Users/luser

(יש פקודה createhomedir, אבל זה לא עובד כאשר בדקתי את זה.)


20
2018-06-05 20:21



יצרתי סקריפט המאכלס את המדריך הראשי של המדריך שלנו עם משתמשים חדשים ולאחר מכן שיחות sudo createhomedir -s (IIRC) על Open Directory Replicas / Fileshares, והם בשמחה ליצור את ספריות הבית. - Clinton Blackmore
dscl -list מוגבל ל 256 תוצאות, אז אם יש לך יותר מ 256 משתמשים, טכניקה זו לא תצליח להבטיח UID ייחודי. - smokris


אם יש לך חבורה של משתמשים ליצור, ניתן ליצור קובץ טקסט מובנה ולהעביר אותו dsimport לעשות את העבודה.

תפוחים מינהל שורת פקודה מדריך יש פרק שלם על משתמשים וקבוצות.


8
2018-06-05 19:19



מוזר. נראה אפל לעשות עם v10.5 של המסמך אתה התייחס בהתחלה, אבל שמרה v10.3 ו פחות מקיפה שלג נמר גירסה - chb


דרך נוספת לבחור ולבחור מזהה משתמש ייחודי לפני יצירת חשבון היא רק להסתכל דרך הרשימה ולבדוק כי אחד אתה רוצה להשתמש הוא לא שם:

 sudo dscl . list /Users uid
 sudo dscl . list groups gid

שימושי אם אתה צריך להשתמש במזהה מסוים


7
2017-11-30 16:10



dscl -list מוגבל ל 256 תוצאות, אז אם יש לך יותר מ 256 משתמשים, טכניקה זו לא תצליח להבטיח UID ייחודי. - smokris
כן זה הנתיב הקצר ביותר להוסיף את המשתמש ממש כאן עכשיו, פשוט grep J id אתה מתכוון להשתמש עבור המשתמש החדש - yair


אני למנף את התשובות השונות כאן כדי לבוא עם מה שאני חושב הוא סקריפט נחמד ליצור חשבונות משתמש. אמנם, זה לא נועד להפעלת פקודה בכל פעם מ ssh; זה מורסו נועד להיות סקריפט לרוץ כאשר הידור מבוסס חבילה מבוסס OS X (כפי שנוצר על ידי קספר הדמיה או אינסטמג).

#!/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.


7
2018-01-14 23:02



בתשובה אחרת, אליוט מזהיר שהפקודה 'createhomedir -c', לקראת הסוף, תיצור חשבונות עבור כל המשתמשים בספרייה שאתה מחויב אליה. (האפשרות 'c', בעמוד האיש, 'יוצרת ספריות בית עבור נתיבי בית מקומיים בלבד'.) קיימת אפשרות אחרת, '-u username', שעשויה לפעול טוב יותר. - Clinton Blackmore
שלום אני משתמש סקריפט לעיל. אז זה מוסיף את המשתמש החדש שלי, אבל כאשר המשתמש יתחבר ללוח השנה שלו הוא אומר כי אין לו את ההרשאות! אתה יכול לעזור לי ?
@jimmy: אני ממליץ לשאול שאלה חדשה על serverfault ולקשר את התשובה הזאת ולא רק לשאול שאלה את ההערות, אשר לעתים נדירות לראות. הייתי מצפה ההרשאות להיות צודק. באמצעות 'chown' ו 'chmod' יכול לעזור אם אתה יכול לזהות קובץ שאין לו את ההרשאות הנכונות ... אבל אני לא יודע איזה מהם זה יהיה. - Clinton Blackmore
dscl -list מוגבל ל 256 תוצאות, אז אם יש לך יותר מ 256 משתמשים, טכניקה זו לא תצליח להבטיח UID ייחודי. - smokris


אני התחלתי עטיפה קטנה על אודות dscl זה לוקח useraddזה לא שלם (וגם אני לא חושב שזה יכול להיות, כמו כמה דברים אינם אפשריים על OS X), אבל השתמשתי בו כדי לעשות קצת יצירת משתמש.

המסגרת היא שם עבור כל הפרמטרים, אז אם אתה רוצה לנצל את התכונות החברתיות מדהים של GitHub, זה קל לעשות.


4
2017-10-17 06:15