
Ich versuche also, einen neuen Benutzer und eine neue Gruppe zu erstellen und dann den Eigentümer eines Verzeichnisses auf diesen neuen Benutzer/diese neue Gruppe zu übertragen. Wenn ich das tue, gibt chown jedoch die Meldung „ungültiger Benutzername“ zurück.
Hier ist ein vereinfachtes Shell-Skript, das zeigt, was ich versuche:
#!/usr/bin/bash
# Create Group
dscl . create /Groups/_jira
dscl . create /Groups/_jira gid 301"
# Create User
dscl . create /Users/_jira
dscl . append /Groups/_jira GroupMembership _jira
# Change Ownership
chown -R _jira:_jira /Some/random/directory
... und die Ausgabe, die ich erhalte, ist:
chown: _jira: illegal user name
Habe ich einen Schritt übersehen? Liegt es daran, dass dem Benutzernamen ein Unterstrich vorangestellt ist?
Notiz:Ich kann alle vorhandenen Benutzer und Gruppen auflisten und den _Jira-Benutzer und die _Jira-Gruppe sehen und auch sehen, dass der Benutzer dieser Gruppe zugewiesen ist.
Antwort1
Sie haben dem _jira-Benutzer keine Benutzer-ID-Nummer zugewiesen (die dscl UniqueID nennt), und da der Dateibesitz durch die Benutzer-ID aufgezeichnet wird, gibt es keine Möglichkeit, Dateien einem Konto ohne Benutzer-ID zuzuweisen. Fügen Sie etwas wie Folgendes hinzu:
dscl . create /Users/_jira UniqueID 301
Sie sollten auch die PrimaryGroupID des Benutzers festlegen. Ich würde diese verwenden, um ihn der _jira-Gruppe zuzuweisen, anstatt den Benutzer zur Gruppe hinzuzufügen:
dscl . create /Users/_jira PrimaryGroupID 301
Wenn Sie beim Hinzufügen einer sekundären Mitgliedschaft in der Gruppe „_jira“ bleiben möchten, sollten Sie eine andere Gruppen-ID als primäre zuweisen und dann die sekundäre Mitgliedschaft mit „dseditgroup“ hinzufügen:
sudo dseditgroup -o edit -a _jira -t user _jira
Dadurch wird nicht nur „_jira“ zur GroupMembership-Liste der Gruppe hinzugefügt, sondern auch die UUID des Benutzers zur GroupMembers-Liste der Gruppe. Es wird empfohlen, beides zu tun, und obwohl dies mit dscl möglich ist, ist es mit dseditgroup einfacher.