Как удалить самостоятельно созданного пользователя-демона с именем «_denyhosts» из группы 1025 (рабочая группа), 403 (com.apple.sharepoint.group.2), 404 (com.apple.sharepoint.group.3) и 405 (com.apple .sharepoint.group.4) с помощью Lion Terminal?
Фон
Чтобы создать учетную запись демона с ограниченными привилегиями, чтобы запустить denyhosts.py с помощью launchd, был полезен пример на http://www.minecraftwiki.net/wiki/Tutorials/Create_a_Mac_OS_X_startup_daemon .
Однако созданная учетная запись пользователя демона Lion «_denyhosts», по-видимому, назначена многим группам:
$ 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)
На мой взгляд состав групп:
можно удалить.
Я пытался удалить членство пользователя в его группах, используя:
$ 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.
Я предполагаю, что эти команды не работают, потому что группа «рабочая группа» находится не в локальном каталоге, а в каталоге LDAP:
$ dseditgroup -o -read workgroup | grep AppleMetaNode -A 1
dsAttrTypeStandard:AppleMetaNodeLocation -
/LDAPv3/127.0.0.1
Но и это еще не все, т.к. группы com.apple.sharepoint.group находятся в /Local/Default, там $ sudo dseditgroup -o edit -d _denyhosts -t user com.apple.sharepoint.group.2
не выдает ошибку, но и не удаляет пользователя _denyhosts из группы:
$ 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 помогло узнать, что членство в группе также может быть назначено по наследству. Полагаю, что такое унаследованное членство и происходит здесь.
$ dscl . -read /Groups/com.apple.sharepoint.group.2 | grep NestedGroupsNestedGroups
NestedGroupsNestedGroups: ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000050 ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C
Попробуйте эту команду, чтобы удалить пользователя из определенной группы
dseditgroup -o edit -d $Username -t user $GroupName
dseditgroup -o edit -d _denyhosts -t user workgroup
Кент