Linux,home-dir-less 设置中命令行程序的配置文件

Linux, command line program's config file on home-dir-less setup

从 terminal/shell 调用的 Linux 的几个程序使用配置文件,其中放置了通常用于程序调用命令行字符串的选项。例如 Vim,例如 curl 及其配置文件 ~/.vimrc~/.curlrc。 如果使用 curl 和 Vim 他们会在主目录中寻找这样的文件(至少根据他们的手册页,它是这样工作的)。 但是我知道 Linux 没有主目录的设置。例如NAS。 已知的 NAS 包含多个共享卷/目录,供注册用户通过多个协议从客户端设备访问。但是默认情况下,NAS 不会为每个新注册的用户创建主目录。如果仅出于上述目的需要,管理员不愿启用选项“create home directory for this user”。

那么在这样的设置上使用程序的配置文件是不是根本不可能?

引用自the curl manual

When curl is invoked, it always (unless -q is used) checks for a default config file and uses it if found. The default config file is checked for in the following places in this order:

1) curl tries to find the "home dir": It first checks for the CURL_HOME and then the HOME environment variables. Failing that, it uses getpwuid() on Unix-like systems (which returns the home dir given the current user in your system). On Windows, it then checks for the APPDATA variable, or as a last resort the '%USERPROFILE%\Application Data'.

2) On windows, if there is no _curlrc file in the home dir, it checks for one in the same dir the curl executable is placed. On Unix-like systems, it will simply try to load .curlrc from the determined home dir.

所以不需要主目录来存储配置文件,在curl的情况下,设置了可以指向任何位置的变量CURL_HOME

其他程序也有类似的机制。

但我在问自己:是否可以作为没有主目录的用户登录(通过 ssh?)?