kann kein Benutzerkonto auf dem Mac über die Befehlszeile erstellen

Ich habe die Anweisungen hier befolgt , um den Benutzer zu erstellen jira:

sudo dscl . create /Users/jira 
sudo dscl . passwd /Users/jira
sudo dscl . create /Users/jira RealName "jira user"
sudo dscl . create /Users/jira UserShell /bin/bash
sudo dscl . append /Groups/admin GroupMembership jira

aber ich habe zwei probleme:

Zuerst erscheint der Benutzer als kein Admin-Mitglied, obwohl ich ihn als Admin hinzugefügt habe (und neu gestartet habe, siehe hier )

Zweitens kann ich diesen Benutzer nicht zu seinem eigenen Verzeichnis machen, dh wenn ich laufe

sudo chown jira /var/jira

Ich bekomme

chown: jira: illegal user name

Ich kann mich auch nicht als dieser Benutzer anmelden:

su jira
Password:
su: unknown login: jira

obwohl der Jira-Benutzer in der Liste der Benutzer erscheint:

dscl . list /Users | grep jira
jira

Und

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Antworten (1)

Die Anweisungen, denen Sie folgen, sind ziemlich konfus und unvollständig; Weitere Informationen finden Sie in dieser ServerFault-Frage . Ich denke, das Hauptproblem besteht darin, dass Sie nicht alle erforderlichen Attribute für den neuen Benutzer festgelegt haben (obwohl Sie mehr festgelegt haben, als Ihr Codefragment vermuten lässt!). Du fehlst:

sudo dscl . create /Users/jira UniqueID 499   # Use some unique user ID number here; numbers below 500 for hidden accounts
sudo dscl . create /Users/jira PrimaryGroupID 20   # This is the "staff" group; add to admins separately
sudo dscl . create /Users/jira NFSHomeDirectory /var/jira   # /var is a good place to hide things; regular users go under /Users
sudo dseditgroup -o edit -t user -a jira admin   # This is the RIGHT way to add a secondary group membership

Die Probleme mit Ihrem aktuellen Setup sind: die primäre Gruppenmitgliedschaft von -2 (die "niemand"-Gruppe), die Verwirrung darüber, ob das Home-Verzeichnis /Users/jira oder /var/jira ist (stellen Sie sicher, dass das NFSHomeDirectory auf den tatsächlichen Speicherort zeigt ! des Verzeichnisses!), und dass Sie die Mitgliedschaft in der Admin-Gruppe nicht vollständig festlegen (das Anhängen des Kontonamens des Benutzers an GroupMembership ist nur ein Teil davon; Sie sollten auch seine GeneratedUID an GroupMembers anhängen oder dseditgroup verwenden und es lassen regeln die Details).

BEARBEITEN: Kent hat darauf hingewiesen, dass /Users/jira immer der Pfad zum Benutzerkonto in ist dsclund möglicherweise auch der Pfad zum Home-Ordner des Benutzers im Dateisystem (das NFSHomeDirectory-Attribut). Sie sind sich zum Verwechseln ähnlich, haben aber nicht unbedingt etwas miteinander zu tun. In den obigen Befehlen zeige ich, dass der Speicherort des Home-Ordners auf /var/jira gesetzt wird, um ihn auszublenden. Um mein Beispiel zu vervollständigen, hier ist, wie Sie den Home-Ordner erstellen würden:

cp -R /System/Library/User\ Template/English.lproj /var/jira
chown -R jira:staff /var/jira

Diese Befehle erstellen den Home-Ordner; Das NFSHomeDirectory-Attribut teilt dem Benutzer mit, wo er es finden kann, wenn er sich anmeldet. Es ist wichtig, dass sie übereinstimmen.

Oh, und wenn Englisch nicht die Hauptsprache des Benutzers ist, stehen eine Reihe anderer Benutzervorlagen zur Auswahl.

Ein Kommentar: /Users/jira ist der Pfad für die Benutzerinformationen in DSCL und hat keine wirkliche Bedeutung dafür, wo sich das Home-Verzeichnis befindet. Die Befehle in Ihrer Antwort sind korrekt; Der Kommentar zu NFSHomeDirectory ist jedoch etwas verwirrend.