Hi,

On 2021-01-04 04:18, Michael Orlitzky wrote:
It would be nice if this was well-supported by the official way of modifying system users/groups; that is, by using an overlay with modified user/group ebuilds.

No, this doesn't work:

1) It's conflicting with the goals other have. See Mike's first reply to my patch proposal:

So the main problem I see with doing this is that it becomes
impossible to reliably make changes to a user in later ebuild
revisions.

He is obviously looking for a way to allow maintainers to change users afterwards. But if we tell people, "If you need customization, fork the user/group ebuild in your overlay" we will disconnect these users from future changes.


2) Thank you for outlining the process how to make changes to users using the new acct-* way. It's a nice 'hack'. But it is an own, new way, which makes Gentoo special, unique. And this creates additional problems:

This maybe work for your local system. In environments where everything is Gentoo and everyone knows Gentoo. But in today's world you are using configuration management tools like Ansible, Puppet, Saltstack, Chef...

People who are not necessarily familiar with every implementation detail must be able to write configurations (recipes) and the used tool is supposed to take care of the differences. In the end, in the ideal world, you are just looking at your code describing a state the system should have.

But this doesn't work if you make Gentoo so special that you will break most tools, will require adjustments or special Gentoo support just for stuff Gentoo is doing differently and like everyone else.

Don't get me wrong here: Yes, these tools already have to implement USE flags for example which are unique for Gentoo. But stuff like user management isn't or should *not*.

When you will get LPIC certification one can expect that you have some basic knowledge in Linux stuff allowing you to do common tasks on all different Linux systems. Now there comes Gentoo where you aren't allowed to use standard Linux tools like 'usermod' when deploying another service if you don't want to risk that your service will go down when following best practice and do regular world upgrades. Really?


3) More important, the idea of forking acct-* packages whenever you need to make modifications don't scale. Like I already outlined in February 2020, you cannot create overlays for each different user configuration:

I.e. using memcached/redis: You grant permission to socket via group. So you put other services belonging to that application you are deploying into your user running the key value store. Do you really expect that one would create multiple overlays per application using one of these services? How would you maintain hundreds of overlays? How would you keep track that each box will use the correct overlay to get the specific customized acct-* package? How do you deal with scenarios where you don't just deploy single instances?

Again, I understand the acct-* fork idea. But I think we have to admit that this will only work for the local system or small environments.

For any professional environment this won't work nor scale.


4) Yet we have to talk about the idea in general that it is really not a good idea to automatically make changes to the user if you run the risk of overwriting changes explicitly made by the system administrator.

It's one thing that multiple local users will get removed from portage group when you remerge acct-user/portage, but if you kill services because package maintainers are pushing their vision of how to run the package, it's not.


--
Regards,
Thomas Deutschmann / Gentoo Linux Developer
fpr: C4DD 695F A713 8F24 2AA1 5638 5849 7EE5 1D5D 74A5

Reply via email to