Bug 58356 - Make primary group configurable on all container objects
Summary: Make primary group configurable on all container objects
Status: CLOSED FIXED
Alias: None
Product: UCS
Classification: Unclassified
Component: UDM (Generic)
Version: UCS 5.0
Hardware: Other Linux
: P5 normal
Target Milestone: UCS 5.2-2-errata
Assignee: Florian Best
QA Contact: Felix Botner
URL: https://git.knut.univention.de/univen...
Keywords:
Depends on:
Blocks:
 
Reported: 2025-05-28 15:07 CEST by Felix Botner
Modified: 2025-06-26 14:56 CEST (History)
0 users

See Also:
What kind of report is it?: Development Internal
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Customer ID:
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Botner univentionstaff 2025-05-28 15:07:16 CEST
Make primary group configurable on all container objects so that we can have multiple defaults for different positions in the LDAP tree.
Comment 1 Florian Best univentionstaff 2025-06-23 19:46:04 CEST
In a standard UCS we have an "default object" which defines the default primary group for user objects:
```
cn=default,cn=univention,dc=ucs,dc=test
objectClass: top
objectClass: univentionDefault
objectClass: univentionObject
univentionObjectType: settings/default
cn: default
univentionDefaultGroup: cn=Domain Users,cn=groups,dc=ucs,dc=test
univentionDefaultComputerGroup: cn=Windows Hosts,cn=groups,dc=ucs,dc=test
univentionDefaultDomainControllerGroup: cn=DC Slave Hosts,cn=groups,dc=ucs,dc=test
univentionDefaultDomainControllerMasterGroup: cn=DC Backup Hosts,cn=groups,dc=ucs,dc=test
univentionDefaultClientGroup: cn=Computers,cn=groups,dc=ucs,dc=test
univentionDefaultMemberserverGroup: cn=Computers,cn=groups,dc=ucs,dc=test
```

For delegated administration we need to define these default per OU.
So that we don't need to read the global groups and the default primary group for user objects in an OU is a group from his OU, or at least that we can configure the default per OU.

One way would be:
- allow objectclass `univentionDefault` on any container/ou (and cn, dc?)
- set `objectClass: univentionDefault` on the users container in a OU -> `cn=users,ou=bremen,...`
- so in the end all container objects (cn, ou, dc?) can handle
  ```
  defaultClientGroup
  defaultComputerGroup
  defaultDomainControllerGroup
  defaultDomainControllerMBGroup
  defaultGroup
  defaultMemberServerGroup
  ```
- in UDM check for `univentionDefaultGroup` on position of new user, so `cn=users,ou=bremen,...` if exists, use this value, or else go with the global default
Comment 2 Florian Best univentionstaff 2025-06-24 16:55:48 CEST
"univentionDefault" was a structural object class and could therefore not be combined with the existing container object classes.
A new object class, "univentionContainerDefault" was introduced, supporting the same attributes.

In UDM container/cn, container/ou, container/dc this is exposed via the option "group-settings", with the same properties as settings/default:
    'defaultGroup'
    'defaultComputerGroup'
    'defaultDomainControllerGroup'
    'defaultDomainControllerMBGroup'
    'defaultMemberServerGroup'
    'defaultClientGroup'

As the LDAP base is extended, one day we should remove settings/default and move the settings to the LDAP base.

univention-management-console-module-udm.yaml
0fd773741a4d | chore(univention-directory-manager-modules): update advisory

univention-management-console-module-udm (12.2.1)
818baace9be9 | feat(udm-umc): reload object properties on creation

univention-ldap.yaml
0fd773741a4d | chore(univention-directory-manager-modules): update advisory

univention-ldap (18.2.4)
b720316fbf00 | feat(udm): implement container-specific default groups with hierarchical lookup

univention-directory-manager-modules.yaml
0fd773741a4d | chore(univention-directory-manager-modules): update advisory

univention-directory-manager-modules (17.2.7)
880a734508f2 | perf(udm): enhance getting syntax-choices
4123c23ad8b0 | feat(udm): add default primary group settings to container objects
b720316fbf00 | feat(udm): implement container-specific default groups with hierarchical lookup

ucs-test (12.2.10)
fbb1f1fe90f0 | test(udm): add tests for OU-specific default groups
Comment 3 Felix Botner univentionstaff 2025-06-25 10:53:54 CEST
OK - Tests (jenkins, manual)
OK - yaml
OK - update