¿Cómo eliminar la membresía del grupo del usuario que usa Lion Terminal?

Cómo eliminar un usuario daemon creado por uno mismo llamado '_denyhosts' del grupo 1025 (grupo de trabajo), 403 (com.apple.sharepoint.group.2), 404 (com.apple.sharepoint.group.3) y 405 (com.apple) .sharepoint.group.4) usando Lion Terminal?

Fondo

Para crear una cuenta de usuario daemon con privilegios reducidos, para ejecutar denyhosts.py usando launchd, el ejemplo en http://www.minecraftwiki.net/wiki/Tutorials/Create_a_Mac_OS_X_startup_daemon ha sido útil.

Sin embargo, la cuenta de usuario Lion daemon creada "_denyhosts" parece tener muchos grupos asignados:

$ 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) 

En mi opinión, la pertenencia a grupos de:

  1. 1025 (grupo de trabajo)
  2. 403 (com.apple.sharepoint.grupo.2)
  3. 404 (com.apple.sharepoint.grupo.3)
  4. 405 (com.apple.sharepoint.grupo.4)

se puede quitar.

He estado tratando de lograr eliminar al usuario de sus membresías de grupos usando:

$ 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.

Supongo que estos comandos fallan porque el grupo "grupo de trabajo" no está ubicado en un directorio local sino en un directorio LDAP:

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

Pero eso no es todo, porque los grupos com.apple.sharepoint.group son /Local/Default, $ sudo dseditgroup -o edit -d _denyhosts -t user com.apple.sharepoint.group.2no genera un error, pero tampoco elimina al usuario _denyhosts del grupo:

$ 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 ayudó a saber que la membresía del grupo también se puede asignar por herencia. Supongo que esa membresía heredada es lo que sucede aquí.

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

Respuestas (1)

Pruebe este comando para eliminar al usuario de un grupo en particular

dseditgroup -o edit -d $Username -t user $GroupName
dseditgroup -o edit -d _denyhosts -t user workgroup
Para que esto funcione, tuve que agregar la autenticación con "-u ADMINUSER -p" (o, en su lugar, podría poner la contraseña de administrador del directorio en el comando con "-P PASSWORD"). Ese era un servidor 10.8.