Wie entferne ich die Gruppenmitgliedschaft von Benutzern mit dem Lion-Terminal?

So entfernen Sie einen selbst erstellten Daemon-Benutzer namens „_denyhosts“ aus den Gruppen 1025 (Arbeitsgruppe), 403 (com.apple.sharepoint.group.2), 404 (com.apple.sharepoint.group.3) und 405 (com.apple .sharepoint.group.4) mit Lion Terminal?

Hintergrund

Um ein Daemon-Benutzerkonto mit eingeschränkten Privilegien zu erstellen, um denyhosts.py mit launchd auszuführen, war das Beispiel auf http://www.minecraftwiki.net/wiki/Tutorials/Create_a_Mac_OS_X_startup_daemon hilfreich.

Das erstellte Lion-Daemon-Benutzerkonto "_denyhosts" scheint jedoch vielen Gruppen zugewiesen zu sein:

$ id _denyhosts
uid=300(_denyhosts) gid=300(_denyhosts) groups=300(_denyhosts),1025(workgroup),12(everyone),61(localaccounts),403(com.apple.sharepoint.group.2),404(com.apple.sharepoint.group.3),405(com.apple.sharepoint.group.4) 

Meiner Meinung nach die Gruppenmitgliedschaft von:

  1. 1025 (Arbeitsgruppe)
  2. 403(com.apple.sharepoint.group.2)
  3. 404(com.apple.sharepoint.group.3)
  4. 405(com.apple.sharepoint.group.4)

kann entfernt werden.

Ich habe versucht, den Benutzer aus seinen Gruppenmitgliedschaften zu entfernen, indem ich Folgendes verwendet habe:

$ dscl . -delete /Groups/workgroup GroupMembership _denyhosts
delete: Invalid Path
<dscl_cmd> DS Error: -14009 (eDSUnknownNodeName)

$ dscl . -delete /groups/workgroup GroupMembership _denyhosts
delete: Invalid Path
<dscl_cmd> DS Error: -14009 (eDSUnknownNodeName)

$ sudo dscl . delete /Groups/workgroup GroupMembership _denyhosts
delete: Invalid Path
<dscl_cmd> DS Error: -14009 (eDSUnknownNodeName)

$ sudo dseditgroup -o edit -d _denyhosts -t user workgroup
Username and password must be provided.

Ich vermute, dass diese Befehle fehlschlagen, weil sich die Gruppe "Arbeitsgruppe" nicht in einem lokalen Verzeichnis, sondern in einem LDAP-Verzeichnis befindet:

$ dseditgroup -o -read workgroup | grep AppleMetaNode -A 1
dsAttrTypeStandard:AppleMetaNodeLocation -
        /LDAPv3/127.0.0.1

Aber das ist noch nicht alles, denn com.apple.sharepoint.group-Gruppen sind /Local/Default, dort $ sudo dseditgroup -o edit -d _denyhosts -t user com.apple.sharepoint.group.2wird kein Fehler ausgegeben, aber auch der _denyhosts-Benutzer nicht aus der Gruppe entfernt:

$ id _denyhosts
uid=300(_denyhosts) gid=300(_denyhosts) groups=300(_denyhosts),1025(workgroup),12(everyone),61(localaccounts),403(com.apple.sharepoint.group.2),404(com.apple.sharepoint.group.3),405(com.apple.sharepoint.group.4)

https://superuser.com/questions/279891/list-all-members-of-a-group-mac-os-x half zu wissen, dass die Gruppenmitgliedschaft auch durch Vererbung zugewiesen werden kann. Ich vermute, dass eine solche ererbte Mitgliedschaft hier passiert.

$ dscl . -read /Groups/com.apple.sharepoint.group.2 | grep NestedGroupsNestedGroups
NestedGroupsNestedGroups: ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000050 ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C

Antworten (1)

Probieren Sie diesen Befehl aus, um den Benutzer aus einer bestimmten Gruppe zu entfernen

dseditgroup -o edit -d $Username -t user $GroupName
dseditgroup -o edit -d _denyhosts -t user workgroup
Damit dies funktioniert, musste ich die Authentifizierung mit "-u ADMINUSER -p" hinzufügen (oder Sie könnten stattdessen das Verzeichnis-Admin-Passwort mit "-P PASSWORD" in den Befehl einfügen). Das war ein 10.8-Server.