是否有与 /etc/hosts 等效的特定用户?

Gre*_*get 18 networking linux

有没有办法定义用户特定的主机——比如在 /etc/hosts 中?也许像 ~/.hosts 这样的东西?

小智 27

对于任何基于 ssh 的(包括 ssh 上的 rsync),您都可以在 ~/.ssh/config 文件中添加条目

例如

Host myhost
    Hostname myhost.example.com
Run Code Online (Sandbox Code Playgroud)

然后 ssh myhost 会将您连接到 myhost.example.com


the*_*ive 5

特定的应用程序可能有一些你可以使用的东西,就像尼克建议的那样,但没有 /etc/hosts 文件的用户 homedir 等效项。

当应用程序尝试解析主机名时,它会由 NSS 处理。您可以通过查看 /etc/nsswitch.conf 来检查 NSS 如何处理您系统上的主机名

$ grep host /etc/nsswitch.conf 
hosts:          files dns
Run Code Online (Sandbox Code Playgroud)

这意味着主机名将首先针对文件数据库 (/etc/hosts) 进行解析,并且针对 /etc/resolv.conf 中指定的 dns 详细信息进行解析失败


小智 5

我想知道同样的事情,一位同事找到了这个解决方案:http ://blog.tremily.us/posts/HOSTALIASES/

它基本上涉及设置一个环境变量(HOSTALIASES),该变量指向用于主机别名的文件(例如,您可以使用 ~/.hosts)。