Cool!

Thanks Alexander and Rob, this was a starting point I needed.  Our
challenge is tying IPA and our inventory system of record together for
audit, when hostnames are not always consistent, so I was hoping to write
something using the IPA libraries to handle the discovery in an automated
way.

Thanks

-Andrew

On Wed, Mar 26, 2025 at 2:38 PM Rob Crittenden <rcrit...@redhat.com> wrote:

> Alexander Bokovoy via FreeIPA-users wrote:
> > On Срд, 26 сак 2025, Andrew Nelson via FreeIPA-users wrote:
> >> How would one go about scripting the updating of host attributes in IPA
> >> such as MAC address form the host itself.  Ideally I would love to use
> >> the
> >> host kerberos key and never need a user credential, but I'm unsure of
> how
> >> to start this.
> >>
> >> Can the IPA command line utility use the host kerberos key to perform
> >> host-mod activities?  Likewise, can the python libraries leverage the
> >> host
> >> kerberos key?  If so, how does one start?
> >
> > # kinit -k
> > # ipa host-show `hostname` --rights --all | grep attributelevelrights
> > ...
> >
> > Look at 'attributelevelrights' line, each element in that dictionary
> > describes what rights your Kerberos principal (in this case machine
> > account) has for each attribute. If you do not see an attribute, you
> > don't have write rights for sure.
> >
> > # ipa host-mod `hostname` --macaddress=....
> >
> > this will fail because machine's account has no rights to write to
> > macaddress attribute:
> >
> > # kinit -k
> > # ipa host-mod `hostname` --macaddress=AA:BB:CC:DD:EE:FF
> > ipa: ERROR: Insufficient access: Insufficient 'write' privilege to the
> > 'macAddress' attribute of entry
> > 'fqdn=m1.ipa1demo.test,cn=computers,cn=accounts,dc=ipa1demo,dc=test'.
> >
> > There is a system permission 'System: Modify Hosts' that allows write to
> > macaddress and other attributes but it is not assigned by default
> > because it gives more rights than required. In particular, it gives
> > right to write to 'objectClass' attribute which is the core of LDAP
> > object system. macAddress attribute is only allowed if LDAP object
> > includes an object class that permits the attribute. FreeIPA API knows
> > which objectclass needs to be added and attempts to add it automatically
> > and it will fail if no permission to write to 'objectclass' attribute is
> > granted. However, allowing applications to write to 'objectclass' means
> > they can transform that entry into something else. It is not something
> > you'd want, at least for hosts.
> >
> > So you need to create a special permission that handle this case.
> > I am unable to create one on the fly, my brain is not working today...
>
> The root of the problem is that the macaddress attribute is not
> available by default in a host but if it is set then the ieee802device
> is added at the same time.
>
> I strongly agree with Alexander and wouldn't recommend hosts be able to
> modify their own set of objectclasses.
>
> A workaround is to add the missing objectclass in advance:
>
> $ kinit admin
> $ ipa host-mod --addattr objectclass=ieee802device client.example.test
>
> Then you can add a new permission:
>
> $ ipa permission-add "Hosts can modify their own MAC address" --right
> write --type host --bindtype self --attrs macaddress
>
> Then you can do as Alexander suggested:
>
> # kinit -k
> # ipa host-mod $(hostname) --macaddress 00:11:22:33:44:55
>
> There is no way to change the default objectclasses for hosts in
> configuration like there is with users and groups. You'd need to write a
> short plugin to inject it into a host as the host is created. For
> existing hosts you'd need to do them one at a time.
>
> rob
>
>
-- 
_______________________________________________
FreeIPA-users mailing list -- freeipa-users@lists.fedorahosted.org
To unsubscribe send an email to freeipa-users-le...@lists.fedorahosted.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/freeipa-users@lists.fedorahosted.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to