Hi all, to patch systemd to fit some "mistake" in ptxdist seems quite disproportionately. It is much simpler to change home of root to /root by providing own /projectroot/etc/passwd then undoing a patch. Oh, it was just a typo of Michael! Great! Ialsovote for solution 1: set home for root to /root Change PTXdist and all places in it that assume the $HOME=/home for root. Best Regards, Artur Am 27.07.2016 um 10:55 schrieb David Jander: > Dear Michael, > > On Wed, 27 Jul 2016 08:55:13 +0200 > Michael Olbrich wrote: > >> Hi, >> >> On Tue, Jul 26, 2016 at 04:00:34PM +0200, David Jander wrote: >>> On Tue, 26 Jul 2016 15:19:59 +0200 >>> Guillermo Rodriguez Garcia wrote: >>> >>>> Wouldn't it be easier to either use a custom /etc/passwd, or create a /root >>>> dir in the filesystem ? That sounds better than patching systemd. >>> Maybe it would be better to change the default /etc/passwd (and everywhere >>> else) in ptxdist then... >>> >>> The problem is that what /etc/passwd says is mandatory. The home directory has >>> a special meaning to the user. You can get to the home directory via $HOME >>> passed in the environment, or via the NS-switch (getent) lookup. They are >>> supposed to be the same. >>> systemd has hardcoded defaults in source-code, which by definition is ugly as >>> hell, but the reason is clearly to avoid potentially expensive, blocking >>> NSS-lookups in the early boot stages, so it is understandable. It would be a >>> lot better if there was some configuration setting read from a file I guess, >>> but alas. >>> On PTXdist now (with the default, shipped /etc/passwd), a user logging in as >>> "root" via, say a serial console getty, will have a different $HOME than a >>> systemd service started with User=root. This is bad, and can potentially do >>> funny things people will not like. >>> To solve the problem, there are really only two options AFAICS: >>> >>> 1.- Change PTXdist and all places in it that assume the $HOME=/home for root. >>> No idea how many places that are, nor how many users already depend on this >>> historic assumption. >>> >>> or >>> >>> 2.- Patch systemd to adapt to the reality of PTXdist. >>> >>> I agree that option 1 is probably better if PTXdist is more or less the only >>> place on earth left where $HOME != /root for uid=0. Historically on Unix it >>> used to be "/", but that is just way too ugly (guess where the name "root" >>> came from?). >>> >>> Using a custom /etc/passwd is not an option, because the default PTXdist stays >>> broken this way. >>> >>> Creating a /root dir is also broken, because like I explained above, the root >>> user will become schizophrenic when logging in and running services from >>> systemd alternately. Think about a user logging in, starting a tool that >>> writes a config files to ~/.bla, and then configuring the same tool to run as a >>> system service. I would (did!) get slightly mad when finding the tool to run >>> with a totally different configuration in the latter case. >> Unless someone comes up with a really good reason, then I think we should go >> with option 2. I have actually considered making the change in the past >> just to be consistent. But I never got around to do it. >> I didn't notice this problem, probably because my rootfs is usually >> read-only, and /root and /home are both empty. >> >> It would be great if some more people would speak up. Such a change can >> potentially break things, so I'd like to know what others are thinking. > Ok, just so we understand each other, you propose to go with my original patch > in this case (i.e. patch systemd to assume $HOME=/home), right? > In case nobody speaks up against it, will you pick it up as-is, or should I > make a correct patch (i.e. learn how to properly use git-ptxdist-patch to > generate a correct series file) and post it here? > > Best regards, >