Ich möchte in der Lage sein, neue Benutzer in Mac OS X 10.5 aus der Ferne zu erstellen, nachdem ich sie in den Computer eingelesen habe. Wie mache ich das?
Ich möchte in der Lage sein, neue Benutzer in Mac OS X 10.5 aus der Ferne zu erstellen, nachdem ich sie in den Computer eingelesen habe. Wie mache ich das?
Antworten:
Verwenden Sie den Befehl dscl. In diesem Beispiel würde der Benutzer "luser" folgendermaßen erstellt:
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
Sie können dann mit passwd das Kennwort des Benutzers ändern oder Folgendes verwenden:
dscl . -passwd /Users/luser password
Sie müssen / Users / luser für das Basisverzeichnis des Benutzers erstellen und den Eigentümer ändern, damit der Benutzer darauf zugreifen kann, und sicherstellen, dass die UniqueID tatsächlich eindeutig ist.
Diese Zeile fügt den Benutzer der Administratorgruppe hinzu:
dscl . -append /Groups/admin GroupMembership luser
useradd
Syntax portiert .
PrimaryGroupID 80
ist admin
, so luser
verwenden können , sudo
auch wenn Sie ihn an die Administratoren der Gruppe nicht hinzugefügt werden .
(Diese Antwort sollte als Nachtrag zum Ausfüllen einiger Lücken in Palmers Prozedur betrachtet werden.)
Um eine nicht verwendete UniqueID für Ihren neuen Benutzer auszuwählen, können Sie Folgendes verwenden:
maxid=$(dscl . -list /Users UniqueID | awk 'BEGIN { max = 500; } { if ($2 > max) max = $2; } END { print max + 1; }')
newid=$((maxid+1))
... dann benutze die Sequenz von dscl-Befehlen, die palmer gegeben hat, um das Konto zu erstellen, und erstelle dann das Home-Verzeichnis des neuen Benutzers mit:
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
(Es gibt einen Befehl createhomedir, der beim Testen nicht funktioniert hat.)
sudo createhomedir -s
auffüllt und dann die Open Directory-Replikate / Dateifreigaben aufruft (IIRC), und sie erstellen glücklich die Basisverzeichnisse.
dscl -list
ist auf 256 Ergebnisse beschränkt. Wenn Sie also mehr als 256 Benutzer haben, kann diese Technik keine eindeutige UID garantieren.
Wenn Sie eine Reihe von Benutzern erstellen müssen, können Sie eine strukturierte Textdatei erstellen und an diese übergeben, dsimport
um die Aufgabe zu erledigen.
Das Apple Command-Line Administration Guide enthält ein ganzes Kapitel über Benutzer und Gruppen.
Eine andere Möglichkeit, eine eindeutige Benutzer-ID auszuwählen, bevor Sie ein Konto erstellen, besteht darin, die Liste zu durchsuchen und zu überprüfen, ob die gewünschte Benutzer-ID nicht vorhanden ist:
sudo dscl . list /Users uid
sudo dscl . list groups gid
Praktisch, wenn Sie eine bestimmte ID benötigen
dscl -list
ist auf 256 Ergebnisse beschränkt. Wenn Sie also mehr als 256 Benutzer haben, kann diese Technik keine eindeutige UID garantieren.
grep
mit dem, den id
Sie für den neuen Benutzer verwenden
Ich habe die verschiedenen Antworten hier genutzt, um ein meiner Meinung nach schönes Skript zum Erstellen von Benutzerkonten zu erstellen. Zugegeben, dies ist nicht dafür gedacht, einen Befehl von ssh aus gleichzeitig auszuführen. Es ist außerdem so konzipiert, dass es als Skript ausgeführt wird, wenn ein paketbasiertes Image von OS X kompiliert wird (wie es von Casper Imaging oder InstaDMG erstellt wurde ).
#!/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)"
Mit dem Skript können Sie angeben, zu welchen Gruppen ein Benutzer gehören soll. Es scheint mir, dass dies je nach der Version von OS X, die Sie ausführen, unterschiedlich sein kann. Ich erhalte andere Ergebnisse, wenn ich id
als Administrator unter OS X 10.6 ausgeführt werde, als wenn ich als Administrator unter OS X 10.5 ausgeführt werde.
dscl -list
ist auf 256 Ergebnisse beschränkt. Wenn Sie also mehr als 256 Benutzer haben, kann diese Technik keine eindeutige UID garantieren.
Ich habe einen kleinen Wrapper über dscl
die useradd
Parameter von Takes gestartet - es ist nicht vollständig (und ich glaube auch nicht, da einige Dinge unter OS X nicht möglich sind), aber ich habe es verwendet, um einige Benutzer zu erstellen.
Das Framework ist für alle Parameter vorhanden. Wenn Sie also die großartigen sozialen Funktionen von GitHub nutzen möchten, ist dies ganz einfach.
single_user
Modus heraus tunCommand-S
möchten (ein Sicherheits-Reset), müssen Sie einen Neustart durchführen und die Bildschirmdetails beachten, um Schreibzugriff auf die Festplatte zu erhalten und dannrm /var/db/.AppleSetupDone
können Sie ein neues Administratorkonto erstellen. Hoffe, das hilft jemandem