I might be missing something here, but if an account can manage all
posixGroup objects then he's, from a attacker point of view, as privileged
as a member of the admin group, isn't he?
Which is precisely why I created a new role limited to POSIX Groups only. After reading
Christian's post, I went in and investigated the existing roles and privileges.
Start with "ipa role-find", and "ipa privilege-find" to get the
following:
I have 9 here, rather than 8, because it shows the new role I created.
$ ipa role-find
---------------
9 roles matched
---------------
Role name: CIFS server
Role name: Enrollment Administrator
Description: Enrollment Administrator responsible for client(host) enrollment
Role name: Group_Administrator
Description: Responsible for creating Groups only
Role name: helpdesk
Description: Helpdesk
Role name: IT Security Specialist
Description: IT Security Specialist
Role name: IT Specialist
Description: IT Specialist
Role name: Security Architect
Description: Security Architect
Role name: Subordinate ID Selfservice User
Description: User that can self-request subordiante ids
Role name: User Administrator
Description: Responsible for creating Users and Groups
----------------------------
Number of entries returned 9
----------------------------
$ ipa privilege-find
---------------------
37 privileges matched
---------------------
Privilege name: ADTrust Agents
Description: System accounts able to access trust information
Privilege name: Automember Readers
Description: Read Automember definitions
Privilege name: Automember Task Administrator
Description: Automember Task Administrator
Privilege name: Automount Administrators
Description: Automount Administrators
Privilege name: CA Administrator
Description: CA Administrator
Privilege name: Certificate Administrators
Description: Certificate Administrators
Privilege name: Certificate Identity Mapping Administrators
Description: Certificate Identity Mapping Administrators
Privilege name: CIFS server privilege
Privilege name: Delegation Administrator
Description: Role administration
Privilege name: DNS Administrators
Description: DNS Administrators
Privilege name: DNS Servers
Description: DNS Servers
Privilege name: External IdP server Administrators
Description: External IdP server Administrators
Privilege name: Group Administrators
Description: Group Administrators
Privilege name: HBAC Administrator
Description: HBAC Administrator
Privilege name: Host Administrators
Description: Host Administrators
Privilege name: Host Enrollment
Description: Host Enrollment
Privilege name: Host Group Administrators
Description: Host Group Administrators
Privilege name: IPA Masters Readers
Description: Read list of IPA masters
Privilege name: Kerberos Ticket Policy Readers
Description: Read global and per-user Kerberos ticket policy
Privilege name: Modify Group membership
Description: Modify Group membership
Privilege name: Modify Users and Reset passwords
Description: Modify Users and Reset passwords
Privilege name: Netgroups Administrators
Description: Netgroups Administrators
Privilege name: PassSync Service
Description: PassSync Service
Privilege name: Password Policy Administrator
Description: Password Policy Administrator
Privilege name: Password Policy Readers
Description: Read password policies
Privilege name: RBAC Readers
Description: Read roles, privileges, permissions and ACIs
Privilege name: Replication Administrators
Description: Replication Administrators
Privilege name: SELinux User Map Administrators
Description: SELinux User Map Administrators
Privilege name: Service Administrators
Description: Service Administrators
Privilege name: Stage User Administrators
Description: Stage User Administrators
Privilege name: Stage User Provisioning
Description: Stage User Provisioning
Privilege name: Subordinate ID Administrators
Description: Subordinate ID Administrators
Privilege name: Subordinate ID Selfservice Users
Description: Subordinate ID Selfservice User
Privilege name: Sudo Administrator
Description: Sudo Administrator
Privilege name: User Administrators
Description: User Administrators
Privilege name: Vault Administrators
Description: Vault Administrators
Privilege name: Write IPA Configuration
Description: Write IPA Configuration
-----------------------------
Number of entries returned 37
-----------------------------
$ ipa role-show "User Administrator"
Role name: User Administrator
Description: Responsible for creating Users and Groups
Privileges: User Administrators, Group Administrators, Stage User Administrators,
Subordinate ID Administrators
$ ipa privilege-show "Group Administrators"
Privilege name: Group Administrators
Description: Group Administrators
Permissions: System: Add Groups, System: Modify External Group Membership, System:
Modify Group Membership, System: Modify Groups,
System: Remove Groups
Granting privilege to roles: User Administrator, Group_Administrator
$ ipa role-show Group_Administrator
Role name: Group_Administrator
Description: Responsible for creating Groups only
Member users: group_admin
Privileges: Group Administrators
------------------------------------------------------------------------------------------------------------------------------------
I all I needed to do was create a new role "Group_Administrator" with only the
Group_Administrator privilege. I then assigned the service id to the role.
It works exactly like I had hoped. It is only able to manipulate group objects.
Otherwise, I see something like this
$ ipa user-add test_user
First name: test
Last name: user
ipa: ERROR: Insufficient access: Could not read UPG Definition originfilter. Check your
permissions.