为什么当 ssh 进入 FreeBSD 时我的 ~/.login_conf 设置不被遵守?

为什么当 ssh 进入 FreeBSD 时我的 ~/.login_conf 设置不被遵守?

我通过笔记本电脑上的 ssh 连接到本地 FreeBSD 服务器(由我管理)。我有一个 FreeBSD 11.2 的库存/etc/login.conf文件。我已将以下内容附加到我的~/.login_conf文件中:

:me \
    :charset=UTF-8:\
    :lang=en_CA.UTF-8:

阅读 FreeBSD 手册,22.2.使用本地化,我希望LANG当我通过 ssh 连接时,会为我设置我的和其他区域设置变量。

当我连接时,我希望看到:

% locale
LANG=en_CA.UTF-8
LC_CTYPE="en_CA.UTF-8"
LC_COLLATE="en_CA.UTF-8"
LC_TIME="en_CA.UTF-8"
LC_NUMERIC="en_CA.UTF-8"
LC_MONETARY="en_CA.UTF-8"
LC_MESSAGES="en_CA.UTF-8"
LC_ALL=

相反,我看到了这个:

% locale
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=

在我看来,我的~/.login_conf档案似乎没有受到尊重。

为什么我的~/.login_conf文件没有受到尊重?怎样才能让它发挥作用呢?

一些进一步的信息:是的,我已经跑了cap_mkdb更改我的登录配置后。它没有给出错误或成功消息。这是我的配置文件的样子:

% ls -lF /etc/login* ~/.login*
-rw-r--r--  1 root  wheel   1853 Jun 21  2018 /etc/login.access
-rw-r--r--  1 root  wheel   6790 Jun 21  2018 /etc/login.conf
-rw-r--r--  1 root  wheel  16384 Sep  2 16:41 /etc/login.conf.db
-rw-r--r--  1 meee  meee     392 Aug 22 01:04 /home/meee/.login
-rw-r--r--  1 meee  meee     214 Sep  2 16:23 /home/meee/.login_conf
-rw-r--r--  1 meee  meee   16384 Sep  2 16:23 /home/meee/.login_conf.db
-rw-r--r--  1 meee  meee     214 Sep  2 16:11 /home/meee/.login_conf~

我了解我需要启动一个新会话才能使新的区域设置生效。据我所知,退出 FreeBSD 服务器上的 ssh 会话,然后通过 ssh 重新连接到 FreeBSD,会启动一个新的登录会话。所以我希望这足以让其~/.login_conf生效。但这似乎不起作用。

以下命令可以locale为当前会话的其余部分返回正确的结果:

% LANG=en_CA.UTF-8; export LANG ; MM_CHARSET=UTF-8; export MM_CHARSET

这是一种解决方法,但我希望~/.login_conf能够可靠地工作。

我的完整~/.login_conf文件是:

# $FreeBSD: releng/11.2/share/skel/dot.login_conf 77995 2001-06-10 17:08:53Z ache $
#
# see login.conf(5)
#
#me:\
#       :charset=iso-8859-1:\
#       :lang=de_DE.ISO8859-1:

:me \
    :charset=UTF-8:\
    :lang=en_CA.UTF-8:

[更新:添加了完整的~/.login_conf文件内容,改进了描述措辞cap_mkdb。]

相关内容