Thanks everyone for your replies, and Hank your last post hit the nail on the head! I know about importing regular users during the installation process and use that feature every time I install a new version of openSuSE. (Guess I should have mentioned that.) It is the system users that I have a LOT of troubles with, especially since I run a lot of services on my systems! Not only do I have the normal sets of system users, but some applications/services install their own new system users. (Bacula and Apache James for example) and it is all these system users such as wwwrun, named, dhcpd, tomcat, bacula etc that cause me a lot of headaches when their underlying ID value changes. And it makes it all but impossible to switch back and forth between an old version of openSuSE and a new version when shared mounted file systems are used between the two version. Think of Apache Tomcat service for example, both the UID and the GID that it requires are named tomcat:tomcat and the system user tomcat must have ownership of the docbase for the websites the tomcat service is handling. If the websites are mounted on a separate file system, that is then used on both the old version of openSuSE and the new version, and the UID and GID values for tomcat:tomcat are different under each version, how does one go about switching between the two systems and keep the ability of running the tomcat service on each?
Sometimes I have managed to work around this problem by going in and changing the underlying value of the UID or GID on one of the systems so that it is the same as the value used on the other system and then doing a chown on all the places I know about where needed. BUT that doesn’t always work! Sometimes I don’t remember/know where all the places where a particular UID or GID was used, that needs to be updated, or worse, trying to change the value of a UID or GID conflicts with another UID/GID that got that value assigned to a different system user or system group name. Then I have no idea where I need to make changes of ownership. Then I have to come up with a unique UID/GID value for that particular user or group on both versions of openSuSE.
Another important aspect of managing system users across different versions of openSuSE is that one must also be sure to set the memberships of which groups a particular system user (and regular user for that matter) needs to be a member of. I often have to do several iterations of booting back and forth between the two different versions of openSuSE in order to manually port all this information across from the older version to the newer version. (Wish YaST’s User/Group management tool had some way to print this info out!) It would be nice to also have this handled in a more automated fashion as well.
So I am not saying it is impossible to manage UIDs and GIDs across two different versions of openSuSE, but it is **** difficult to handle this manually. And keep in mind that I have to KNOW where all the places that a particular UID or GID is used, and make sure that I do the chown commands everywhere needed. This is almost impossible to do and often leads to an extraordinarily amount of debugging just to find out that I missed changing the UID or GID somewhere. (Error messages concerning permissions are often obtuse and misleading as well) Having a tool or a procedure to automate the setting up of system users, so that their underlying UID’s and GID’s are kept consistent when upgrading openSuSE would sure be helpful! IMHO of course!
If you are only running one or two services, such as Apache2, then managing the UID’s and GID’s by hand is not terribly difficult, I agree, but when running lots of services, using shared file systems across 2 or more versions of openSuSE, like I do, then managing all the different UIDs and GIDs becomes nearly impossible! I noted a few of the replies just brushed this problem aside, saying they either ignored the issue or managed it by hand. I have been trying to manage it by hand and my complaint is that that approach is costing me many hours of debugging problems that arise due to permission issues that often lead back to this issue of managing UID’s and GID’s across different versions of openSuSE.