A je nějaká jiná možnost jak pythonem upravovat uživatele?
Kromě nějakých jednorázovek jsem to úplně nepotřeboval, ale asi by záleželo o co by se mělo jednat.
Pokud by to bylo na nějaké jednotné nastavování, tak bych asi přemýšlel o Ansible. Můžu ho volat z Pythonu přes Ansible Runner (ale samozřejmě pak musí mít nastavený Ansible, inventory atp.). Teoreticky i přímo ty jeho moduly (Ansible je napsaný v Pythonu), ale tam pak člověk pracuje s interním API, což není nic garantovaného.
Kdyby šlo o nějakou relativně jednoduchou věc s pár funkcemi, metodami a kde by se hodilo nemít externí závislosti, tak bych si prostě nějak zabalil volání systémových nástrojů přes subprocess. Tzn. useradd, usermod, userdel, groupadd.. podle potřeby.
Pro přístup k aktuálním lokálním uživatelům a skupinám bych použil moduly pwd a grp, co jsou ve standardní knihovně a fungují na Linuxu i FreeBSD, takže člověk ani nemusí volat třeba getent.
Finálně, byť jsem to nikdy předtím nepoužíval, tak ten Python binding pro libuser šel normálně sestavit, jak jsem zmiňoval.
Almu neznám, ale otestoval jsem to na aktuálně vydaném RHEL 10. Přes "dnf download --source libuser" jsem si stáhnul zdrojový balíček: libuser-0.64-10.el10.src.rpm.
Pak jsem povolil CRB repozitář, dotahal nástroje a závislosti pro sestavení, nastavil pár rpm maker pro aktuálního uživatele a standardně to přes rpmbuild --rebuild nechal celé znovu sestavit. Rovnou to udělá i balíček python3-libuser, který se pak dá nainstaloval.