सवाल मैं मैक ओएस एक्स 10.5 में टर्मिनल से उपयोगकर्ता खाते कैसे बना सकता हूं?


मैं मशीन में ssh'ing के बाद दूरस्थ रूप से मैक ओएस एक्स 10.5 में नए उपयोगकर्ताओं को बनाने में सक्षम होना चाहूंगा। मैं यह कैसे करु?


84
2018-06-05 18:07


मूल


मेरे पास अभी तक जवाब देने की प्रतिष्ठा नहीं है, लेकिन यदि आप यह देखना चाहते हैं कि इसे कैसे करें single_user मोड (एक सुरक्षा रीसेट) तो आपको होल्डिंग को रीबूट करने की आवश्यकता होगी Command-S, ऑन-स्क्रीन विवरण प्रति डिस्क पर लेखन पहुंच प्राप्त करें, और उसके बाद rm /var/db/.AppleSetupDone जो आपको एक नया व्यवस्थापक खाता बनाने देगा। उम्मीद है कि यह किसी की मदद करता है - New Alexandria


जवाब:


डीएससीएल कमांड का प्रयोग करें। यह उदाहरण उपयोगकर्ता "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

आपको उपयोगकर्ता की होम निर्देशिका के लिए / उपयोगकर्ता / लुसर बनाना होगा और स्वामित्व बदलना होगा ताकि उपयोगकर्ता इसे एक्सेस कर सके, और सुनिश्चित करें कि अनन्य आईडी वास्तव में अद्वितीय है।

यह लाइन उपयोगकर्ता को व्यवस्थापक के समूह में जोड़ देगी:

dscl . -append /Groups/admin GroupMembership luser

80
2018-06-05 18:15



मैं कैसे सुनिश्चित करूं कि यूआईडी अद्वितीय है? - JR Lawhorne
कोई स्वचालित तरीका नहीं है; यदि आप इसे स्क्रिप्ट करते हैं तो आप इसे "id ####" कमांड चला सकते हैं और सुनिश्चित कर सकते हैं कि यह "ऐसा कोई उपयोगकर्ता" या कुछ ऐसा हैक वापस नहीं लौटाता है। - palmer
यदि आपके पास अनुमति नहीं है तो सूडो का उपयोग करना याद रखें। - Raffi Khatchadourian
बीटीडब्लू, क्योंकि यह इस तरह से अधिक verbose रास्ता होना चाहिए, मैंने पोर्ट किया इन आदेशों में useradd वाक्य - विन्यास। - Xiong Chiamiov
ध्यान दें कि PrimaryGroupID 80 है admin, इसलिए luser इस्तेमाल कर सकते हैं sudo भले ही आप उसे प्रशासकों के समूह में शामिल न करें। - ruslo


(इस जवाब को पामर की प्रक्रिया में कुछ रिक्त स्थान भरने के लिए एक परिशिष्ट माना जाना चाहिए)

नए उपयोगकर्ता के लिए एक अप्रयुक्त अनन्य आईडी चुनने के लिए, आप इसका उपयोग कर सकते हैं:

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

... फिर डीएससीएल कमांड के अनुक्रम का उपयोग करें पाल्मर ने खाता बनाने के लिए दिया, और उसके बाद नया उपयोगकर्ता की होम निर्देशिका बनाएं:

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 (आईआईआरसी) ओपन डायरेक्टरी रेप्लिकेशंस / फाइलशेयर पर, और वे खुशी से घर निर्देशिका बनाते हैं। - Clinton Blackmore
dscl -list 256 परिणामों तक सीमित है, इसलिए यदि आपके पास 256 से अधिक उपयोगकर्ता हैं, तो यह तकनीक एक अद्वितीय यूआईडी की गारंटी देने में विफल रहेगी। - 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 से अधिक उपयोगकर्ता हैं, तो यह तकनीक एक अद्वितीय यूआईडी की गारंटी देने में विफल रहेगी। - smokris
yup कि उस उपयोगकर्ता को अभी यहां जोड़ने के लिए सबसे छोटा रास्ता है, बस grep इसके साथ id आपको नए उपयोगकर्ता के लिए उपयोग करने के लिए दिमाग था - yair


मैंने उपयोगकर्ता खातों को बनाने के लिए एक अच्छी स्क्रिप्ट के बारे में सोचने के लिए यहां विभिन्न उत्तरों का लाभ उठाया है। माना जाता है कि यह एसएसएच से एक समय में कमांड चलाने के लिए डिज़ाइन नहीं किया गया है; ओएस एक्स की पैकेज-आधारित छवि संकलित करते समय यह एक स्क्रिप्ट रन बनने के लिए बनाया गया है (जैसा कि द्वारा बनाया गया है कैस्पर इमेजिंग या 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)"

स्क्रिप्ट आपको यह निर्दिष्ट करने देती है कि उपयोगकर्ता को किस समूह से संबंधित होना चाहिए। ऐसा लगता है कि यह आपके द्वारा चलाए जा रहे ओएस एक्स के संस्करण के आधार पर भिन्न हो सकता है। जब मैं दौड़ता हूं तो मुझे अलग-अलग परिणाम मिलते हैं id ओएस एक्स 10.5 पर व्यवस्थापक के रूप में चलते समय ओएस एक्स 10.6 पर एक व्यवस्थापक के रूप में।


7
2018-01-14 23:02



एक अन्य जवाब में, इलियट चेतावनी देता है कि अंत में 'createhomedir -c' कमांड, उस निर्देशिका के सभी उपयोगकर्ताओं के लिए खाता बनाएगा जो आप बंधे हैं। ('-C' विकल्प, मैन पेज में, 'केवल स्थानीय घर पथों के लिए होम निर्देशिका बनाता है।') एक और विकल्प है, '-u उपयोगकर्ता नाम', जो बेहतर काम कर सकता है। - Clinton Blackmore
हैलो मैं ऊपर लिपि का उपयोग कर रहा हूँ। तो यह मेरा नया उपयोगकर्ता जोड़ता है लेकिन जब उपयोगकर्ता अपने कैलेंडर से कनेक्ट होगा तो यह कहता है कि उसके पास अनुमति नहीं है! क्या आप मेरी मदद कर सकते हैं ?
@ जिमी: मैं सर्वरफॉल्ट पर एक नया प्रश्न पूछने की सिफारिश करता हूं और टिप्पणियों में सिर्फ एक प्रश्न पूछने के बजाय इस उत्तर से लिंक करता हूं, जिसे शायद ही कभी देखा जाएगा। मैं अनुमतियों को सही होने की उम्मीद करता हूं। 'चाउन' और 'chmod' का उपयोग करने से आप मदद कर सकते हैं यदि आप उस फ़ाइल की पहचान कर सकते हैं जिसमें सही अनुमति नहीं है ... लेकिन मुझे नहीं पता कि यह कौन सा होगा। - Clinton Blackmore
dscl -list 256 परिणामों तक सीमित है, इसलिए यदि आपके पास 256 से अधिक उपयोगकर्ता हैं, तो यह तकनीक एक अद्वितीय यूआईडी की गारंटी देने में विफल रहेगी। - smokris


मैंने शुरू किया एक छोटा आवरण के बारे में dscl वह प्राप्त करता है useraddके पैरामीटर - यह पूरा नहीं है (न ही मुझे लगता है कि यह हो सकता है, क्योंकि ओएस एक्स पर कुछ चीजें संभव नहीं हैं), लेकिन मैंने इसे कुछ उपयोगकर्ता निर्माण करने के लिए उपयोग किया।

ढांचे सभी मानकों के लिए है, इसलिए यदि आप गिटहब की भयानक सामाजिक सुविधाओं का लाभ लेना चाहते हैं, तो यह करना आसान है।


4
2017-10-17 06:15