Date: Thu, 11 May 2023 08:40:01 +0000 From: Gary Jennejohn <garyj@gmx.de> To: Mike Karels <mike@karels.net> Cc: Cy Schubert <Cy.Schubert@cschubert.com>, Mitchell Horne <mhorne@freebsd.org>, rgrimes@freebsd.org, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 36db6b04962a - main - hier(7): document /home/ and /usr/home/ Message-ID: <20230511104001.6b925848@ernst.home> In-Reply-To: <4367FD0A-76AC-4E98-A133-E50D8CF841C7@karels.net> References: <202305101419.34AEJf1x054239@gndrsh.dnsmgr.net> <ba22a75d-06c0-371e-603e-7ded9d1dca97@freebsd.org> <20230510151313.9E7A6111@slippy.cwsent.com> <4367FD0A-76AC-4E98-A133-E50D8CF841C7@karels.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 10 May 2023 16:48:12 -0500 Mike Karels <mike@karels.net> wrote: > On 10 May 2023, at 10:13, Cy Schubert wrote: > > > In message <ba22a75d-06c0-371e-603e-7ded9d1dca97@freebsd.org>, Mitchel= l > > Horne w > > rites: > >> On 5/10/23 11:19, Rodney W. Grimes wrote: > >>>> The branch main has been updated by mhorne: > >>>> > >>>> URL: https://cgit.FreeBSD.org/src/commit/?id=3D36db6b04962a01ff7b21= 592def02d > >> 4c570dac939 > >>>> > >>>> commit 36db6b04962a01ff7b21592def02d4c570dac939 > >>>> Author: Mitchell Horne <mhorne@FreeBSD.org> > >>>> AuthorDate: 2023-05-10 12:53:56 +0000 > >>>> Commit: Mitchell Horne <mhorne@FreeBSD.org> > >>>> CommitDate: 2023-05-10 13:25:17 +0000 > >>>> > >>>> hier(7): document /home/ and /usr/home/ > >>>> > >>>> Reviewed by: imp > >>>> MFC after: 1 week > >>>> Sponsored by: The FreeBSD Foundation > >>>> Differential Revision: https://reviews.freebsd.org/D40002 > >>>> --- > >>>> share/man/man7/hier.7 | 10 ++++++++++ > >>>> 1 file changed, 10 insertions(+) > >>>> > >>>> diff --git a/share/man/man7/hier.7 b/share/man/man7/hier.7 > >>>> index ff11289436a1..b6759dd6e65b 100644 > >>>> --- a/share/man/man7/hier.7 > >>>> +++ b/share/man/man7/hier.7 > >>>> @@ -90,6 +90,10 @@ file descriptor files; > >>>> see > >>>> .Xr \&fd 4 > >>>> .El > >>>> +.It Pa /home/ > >>>> +user HOME directories. > >>>> +This is a symlink to > >>>> +.Pa /usr/home/ > >>> > >>> /usr is "contains the majority of user utilities and applications" > >>> it should not contain home directories. > >>>> I do not know when this move to usr came about it was traditionally > >> /home. > >>> I do not know why /usr/home even exists, it is not needed by > >>> anything I am aware of. If we have a compatible link it > >>> should be, usr/home -> ../home and /home should be the > >>> directory. > >>> > >> > >> I agree that /usr/home is strange, and is unique (?) to FreeBSD. > >> > >> The oldest commit in the output of `git log --grep '/usr/home'` is: > >> > >> commit f2400d465896a8e4f6fdc57eba840cf49b25bbbd > >> Author: David Nugent <davidn@FreeBSD.org> > >> Date: Fri Jan 3 04:42:18 1997 +0000 > >> > >> Implemented /home -> /usr/home symlink kludge. > >> If home basedir would be created in the root partition, create > >> it under /usr instead, and symlink /basedir -> /usr/basedir. > >> > >> Notes: > >> svn path=3D/head/; revision=3D21242 > >> > >> > >> So it has been this way for 26 years at least. I do not know what to = say > >> about whether /usr "should" contain it, but it does. > > > > Usually history matters. I can understand not changing it. On the flip > > side, I cut my UNIX teeth on SunOS 4 and Solaris where /home was /home= -- > > albeit automounted from /export/home on localhost or some NFS server. = In > > the Red Hat land at $JOB, /home is its own partition (actually an LVM > > volume). In both cases /home is not in /usr because end-users can fill > > /usr. This can be problematic operationally because it's yet another > > headache to deal with should someone fill the filesystem. Filling /usr= is > > more serious than filling /home. > > > > As a point of interest, when I installed my first FreeBSD many moons a= go I > > used the Solaris standard of /export/home, using amd (now automount) t= o > > serve my /home. I'm not advocating we do this, it's overkill, but /hom= e > > should not live in /usr. It's a potential headache for any sysadmin. > > > > With ZFS the solution is easy. With UFS based systems there are a lot = of > > other factors that go into how we install the "default" from the get-g= o. > > The situation is a fair mess. It took me a little while to figure out t= hat > the kludge referenced above is in the pw(8) command, which is used as th= e > backend to adduser(8). Neither /home nor /usr/home is in the base packa= ge. > adduser defaults to /home/user, and creates the parent directory (e.g. /= home) > if it does not exist, but if there is no internal slash, pw moves the pa= rent > to /usr. In this case, it makes the symlink from root. zfs is differe= nt, > in that it includes a usr/home dataset already (created by bsdinstall). > In this case, creating a user with /home/user causes the symlink to be a= dded > as a side effect. > > I?m sure the kludge was originally done when root and /usr were separate > file systems by default, root was small, and there was no /home by defau= lt. > However, we now default to a single large file system (with datasets, in > the zfs case). > > All of this really is a horrible kludge, and it is a house of cards. I'= m > amazed that it doesn't break more often. I'm tempted to remove the klud= ge > and change the zfs setup to create a home dataset rather than usr/home. > However, if zfs users explicitly configure a home directory under /usr/h= ome, > this would end up in the usr dataset. An alternative would be to remove= the > code from pw to create the parent directory entirely (which seems sensib= le), > and create a /home directory for ufs installs. I don't know how well kn= own > it is that adduser/pw will create parent directories for home directorie= s > though. This cleanup would change the default location for home directo= ries > to /home, which makes more sense. It would require documentation, e.g. = in > the release notes. The changes would only affect new installations, not > upgrades. > > Thoughts? > Adding home would require a change to BSD.root.dist, since it's not currently in there. Only usr is present. IMHO changing pw would be a reasonable approach. =2D- Gary Jennejohn
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20230511104001.6b925848>