环境是红帽
我不有特权
但现在/etc/resolv.conf是:
# Generated by NetworkManager
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
我可以仅由我(单个用户)更改我的 DNS 吗?
我怎样才能做到这一点?
答案1
一般不会。但是,在某些特殊情况下,您可以编写一个程序来LD_PRELOAD
伪装您拥有权限(以及您自己的配置)的 C 运行时库。
这在使用 cwrap 在没有 root 权限的情况下测试您的软件堆栈:
迄今为止,cwrap.org 系列的最新成员是 resolv_wrapper。该库使测试使用 libresolv API 的应用程序成为可能 - 一个典型的示例是使用 SRV DNS 记录来定位要连接的服务器的程序。此包装器与 nss_wrapper 的主机支持不同,后者包装 NSS 调用(例如 getaddrinfo())。相比之下,resolv_wrapper 支持 libresolv 低级 API。
resolv_wrapper 允许您设置自定义 DNS 服务器并使用环境变量将测试指向该服务器,甚至设置一个虚假的 DNS 数据库文件,应用程序将使用该文件来构建测试 DNS 回复。第一个选项对于测试 DNS 服务器或包含 DNS 的集成服务器(例如 FreeIPA 或 Samba)非常有用。第二个选项对于测试客户端更有用,您需要测试客户端服务的自动发现。
文章继续说它将展示一个完整的示例(但它只是一个片段)。您可能会发现完整的解决方案很难实施。