Welche Befehle (oder Skripte) können ein voll funktionsfähiges Benutzerkonto auf Mountain Lion erstellen, das nur von der Befehlszeile über Terminal oder ssh ausgeführt wird.
Es sieht so aus, als ob ein vorhandenes Antwortpaar funktionieren könnte , aber ich habe mich gefragt, ob es ein kurzes Skript oder Tool zum Erstellen voll funktionsfähiger Benutzerkonten auf Mountain Lion gibt.
Hier ist ein Shell-Skript, das ich bei der Arbeit geschrieben habe, um dies als Teil des NetInstall-Prozesses zu handhaben (automatisches Erstellen eines lokalen Administratorkontos während des Imaging-Prozesses).
#!/bin/sh
. /etc/rc.common
dscl . create /Users/administrator
dscl . create /Users/administrator RealName "Administrator Account"
dscl . create /Users/administrator hint "Password Hint"
dscl . create /Users/administrator picture "/Path/To/Picture.png"
dscl . passwd /Users/administrator thisistheaccountpassword
dscl . create /Users/administrator UniqueID 501
dscl . create /Users/administrator PrimaryGroupID 80
dscl . create /Users/administrator UserShell /bin/bash
dscl . create /Users/administrator NFSHomeDirectory /Users/administrator
cp -R /System/Library/User\ Template/English.lproj /Users/administrator
chown -R administrator:staff /Users/administrator
Einige Anmerkungen zu erwähnen:
Um dies weiter zu automatisieren, kann die folgende Zeile verwendet werden, um die nächste "verfügbare" Benutzer-ID zu erhalten, wenn Sie auf einem Mac laufen, auf dem bereits Benutzer eingerichtet sind.
LastID=`dscl . -list /Users UniqueID | awk '{print $2}' | sort -n | tail -1`
NextID=$((LastID + 1))
Dann könnte die entsprechende Zeile in der obigen Antwort von bispymusic geändert werden:
dscl . create /Users/administrator UniqueID $NextID
Ich habe einige Updates zu der obigen Antwort.
dscl / -append /Groups/admin GroupMembership newUserName
Dieser Befehl kann verwendet werden, um dem Benutzer Administratorzugriff zu gewähren. Wenn dieser Befehl nicht angegeben wird, wird der Benutzer automatisch als Standardbenutzer festgelegt.
dscl . create /Users/newUserName PrimaryGroupID 80
Dies legt die primäre Gruppen-ID des Benutzers fest. 80 bedeutet Administrator und 20 Mitarbeiter . Und die Einstellung auf 20 wird den Benutzer nicht zum Standard machen. Es sei denn, der erste Befehl wird nicht erwähnt.
Hier ist ein Shell-Skript, das ich geschrieben habe, um neue Benutzer in Max OS X über die Befehlszeile hinzuzufügen. Funktioniert genauso, als wäre es Linux. Fühlen Sie sich frei, eine für Ihre persönlichen Bedürfnisse zu bearbeiten. Nennen Sie es einfach useradd.sh und legen Sie die richtigen Berechtigungen fest ( chmod 0700 useradd.sh
in meinem Fall). Danke an bispymusic, Alex Leach, Kent für ihre Beiträge.
OS X High Sierra getestet
#!/bin/sh
if [[ `id -u` != 0 ]]; then
echo "Must be root to run script"
exit
fi
read -p "Enter user name and press [ENTER]: " UserName
if [[ $UserName == `dscl . -list /Users UniqueID | awk '{print $1}' | grep -w $UserName` ]]; then
echo "User already exists!"
exit 0
fi
read -p "Enter real name and press [ENTER]: " RealName
read -p "Enter PrimaryGroupID (80 - admin, 20 - user) and press [ENTER]: " PrimaryGroupID
LastID=`dscl . -list /Users UniqueID | awk '{print $2}' | sort -n | tail -1`
NextID=$((LastID + 1))
. /etc/rc.common
dscl . create /Users/$UserName
dscl . create /Users/$UserName RealName $RealName
read -p "Enter password hint and press [ENTER]: " PasswordHint
dscl . create /Users/$UserName hint $PasswordHint
PasswordHint=0
echo " "
read -s -p "Enter Account Password and press [ENTER]: " AccountPassword
echo " "
read -s -p "Enter Account Password again and press [ENTER]: " AccountPasswordRepeat
if [[ $AccountPassword == $AccountPasswordRepeat ]]; then
dscl . passwd /Users/$UserName $AccountPassword
AccountPassword=0
else
echo "Passwords do not match!"
exit 1
fi
echo " "
dscl . create /Users/$UserName UniqueID $NextID
dscl . create /Users/$UserName PrimaryGroupID $PrimaryGroupID
dscl . create /Users/$UserName UserShell /bin/bash
dscl . create /Users/$UserName NFSHomeDirectory /Users/$UserName
createhomedir -u $UserName -c
echo " "
echo "New user `dscl . -list /Users UniqueID | awk '{print $1}' | grep -w $UserName` has been created with unique ID `dscl . -list /Users UniqueID | grep -w $UserName | awk '{print $2}'`"
Sie können dasselbe aus meinem Kern bekommen
NextID=$((`dscl . -list /Users UniqueID | awk '{print $2}' | sort -n | tail -1` + 1))
aber es sieht einfach besser und klarer aus, so wie es jetzt ist.
Fahrrad
Benutzer52842
Bispymusik
Kent
Alex Leach
cp -R ...
;chown -R ...
) können Sie auch den Befehl verwendencreatehomedir -u administrator
.createhomedir
hat auch eine Manpage.börre