【问题标题】:Linux, command line program's config file on home-dir-less setupLinux,在 home-dir-less 设置上的命令行程序配置文件
【发布时间】:2015-01-23 08:39:28
【问题描述】:

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

那么在这样的设置中使用程序的配置文件是完全不可能的吗?

【问题讨论】:

    标签: linux file directory config home-directory


    【解决方案1】:

    引用the curl manual

    当 curl 被调用时,它总是(除非使用 -q)检查一个 默认配置文件并在找到时使用它。默认配置文件是 按此顺序在以下位置检查:

    1) curl 尝试查找“主目录”:它首先检查 CURL_HOME 然后是 HOME 环境变量。做不到这一点,它 在类 Unix 系统上使用 getpwuid() (返回给定的主目录 您系统中的当前用户)。在 Windows 上,它会检查 APPDATA 变量,或者作为最后的手段 '%USERPROFILE%\Application 数据”。

    2) 在 windows 上,如果主目录中没有 _curlrc 文件,它会检查 对于同一目录中的一个, curl 可执行文件被放置。在类 Unix 上 系统,它只会尝试从确定的主页加载 .curlrc 目录。

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

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

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

    【讨论】:

    • 确实,你是对的。太容易了。谢谢!但是,有必要对每种情况进行检查,以查看它是否不会导致程序行为发生不希望的变化。确实可以登录这样的设置。我可以在我的 NAS 上执行此操作,但只能使用股票管理员帐户。直接在 ssh 登录时的工作目录是 /root。
    • 很高兴听到这个消息。如果它回答了您的问题,请接受它作为答案或投票。
    猜你喜欢
    • 2011-12-17
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 2015-09-11
    • 1970-01-01
    相关资源
    最近更新 更多