From nobody Thu May 11 14:58:26 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QHFQL4ktwz4BLCS; Thu, 11 May 2023 14:58:34 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: from gndrsh.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4QHFQK5pdcz4X3r; Thu, 11 May 2023 14:58:33 +0000 (UTC) (envelope-from freebsd@gndrsh.dnsmgr.net) Authentication-Results: mx1.freebsd.org; none Received: from gndrsh.dnsmgr.net (localhost [127.0.0.1]) by gndrsh.dnsmgr.net (8.13.3/8.13.3) with ESMTP id 34BEwRt4058841; Thu, 11 May 2023 07:58:27 -0700 (PDT) (envelope-from freebsd@gndrsh.dnsmgr.net) Received: (from freebsd@localhost) by gndrsh.dnsmgr.net (8.13.3/8.13.3/Submit) id 34BEwQR9058840; Thu, 11 May 2023 07:58:26 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <202305111458.34BEwQR9058840@gndrsh.dnsmgr.net> Subject: Re: git: 36db6b04962a - main - hier(7): document /home/ and /usr/home/ In-Reply-To: <20230511104001.6b925848@ernst.home> To: garyj@gmx.de Date: Thu, 11 May 2023 07:58:26 -0700 (PDT) CC: Mike Karels , Cy Schubert , Mitchell Horne , rgrimes@freebsd.org, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 4QHFQK5pdcz4X3r X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:13868, ipnet:69.59.192.0/19, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N > On Wed, 10 May 2023 16:48:12 -0500 > Mike Karels wrote: > > > On 10 May 2023, at 10:13, Cy Schubert wrote: > > > > > In message , Mitchell > > > 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=36db6b04962a01ff7b21592def02d > > >> 4c570dac939 > > >>>> > > >>>> commit 36db6b04962a01ff7b21592def02d4c570dac939 > > >>>> Author: Mitchell Horne > > >>>> AuthorDate: 2023-05-10 12:53:56 +0000 > > >>>> Commit: Mitchell Horne > > >>>> 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 > > >> 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=/head/; revision=21242 > > >> > > >> > > >> 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 ago I > > > used the Solaris standard of /export/home, using amd (now automount) to > > > serve my /home. I'm not advocating we do this, it's overkill, but /home > > > 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-go. > > First off, thank you Mike for looking at this closer. Add me to any reviews you might creat. > > The situation is a fair mess. It took me a little while to figure out that > > the kludge referenced above is in the pw(8) command, which is used as the > > backend to adduser(8). Neither /home nor /usr/home is in the base package. > > 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 parent > > to /usr. In this case, it makes the symlink from root. zfs is different, > > 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 added > > 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 default. > > 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 kludge > > and change the zfs setup to create a home dataset rather than usr/home. Or make it a menu option(s): if (zfs) "Create a user home dataset?" (default yes) if (ufs) "Create a user home directory?" (default yes) "User home location: /home" (This is default) As far as I am concerned the symlink can just die.... > > However, if zfs users explicitly configure a home directory under /usr/home, > > 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 sensible), > > and create a /home directory for ufs installs. I don't know how well known > > it is that adduser/pw will create parent directories for home directories > > though. This cleanup would change the default location for home directories > > 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. It should *not* be in the etc/mtree/BSD.*.dist files at all. And it is not on my 13.1R system. It would not need to be in BSD.root.dist either, this is a *post distribution* created directory/dataset. > > IMHO changing pw would be a reasonable approach. I am mixed on this.... it more or less does the right thing, and if a user specifies /tmp/foolishidea/home/$USER that is on them. No one said all users homes must be in the same location. > Gary Jennejohn -- Rod Grimes rgrimes@freebsd.org