git: b4b61ead7eab - main - dot.profile: handle symlinked $HOME
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 13 Feb 2024 18:25:35 UTC
The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=b4b61ead7eabb7b6f3a6de67f7594b17c3a20660 commit b4b61ead7eabb7b6f3a6de67f7594b17c3a20660 Author: Edward Tomasz Napierala <trasz@FreeBSD.org> AuthorDate: 2019-01-09 11:04:27 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2024-02-13 18:24:22 +0000 dot.profile: handle symlinked $HOME Reapply 4cea05a273c875b5d5d4c41bfa6f2f0a60fa4a66: Make sh(1) recognize the default $HOME. By default /home is a symlink; without this change, when you log in, sh(1) won't realize the current directory (eg '/usr/home/test') is the same as $HOME ('/home/test'). /home is no longer a symlink by default, but new users may be added on systems that started out with an earlier version of FreeBSD (and still have /home as a symlink) or admins may do so. This test is not particularly expensive, so just restore it. Suggested by: danfe, brooks --- share/skel/dot.profile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/share/skel/dot.profile b/share/skel/dot.profile index 7b9aa96c834a..40dfa58f4e84 100644 --- a/share/skel/dot.profile +++ b/share/skel/dot.profile @@ -19,6 +19,9 @@ PAGER=less; export PAGER # set ENV to a file invoked each time sh is started for interactive use. ENV=$HOME/.shrc; export ENV +# Let sh(1) know it's at home, despite /home being a symlink. +if [ "$PWD" != "$HOME" ] && [ "$PWD" -ef "$HOME" ] ; then cd ; fi + # Query terminal size; useful for serial lines. if [ -x /usr/bin/resizewin ] ; then /usr/bin/resizewin -z ; fi