root以外のユーザーとしてLinuxでDNSを変更できますか? [閉鎖]

root以外のユーザーとしてLinuxでDNSを変更できますか? [閉鎖]

環境は赤い帽子

いいえ特権を受けた

しかし今/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ランタイムライブラリ(および独自の設定)を偽装するプログラムを作成できます。

これはrootアクセスなしでcwrapを使用したソフトウェアスタックのテスト:

今日まで、cwrap.orgファミリの最新メンバーはresolv_wrapperです。このライブラリを使用すると、libresolv APIを使用するアプリケーションをテストできます。一般的な例は、SRV DNS レコードを使用して接続するサーバーを検索するプログラムです。このラッパーは、NSS呼び出し(getaddrinfo()など)をラップするnss_wrapperのホストサポートとは異なります。一方、resolv_wrapper は libresolv 低レベル API をサポートします。

resolv_wrapperを使用すると、カスタムDNSサーバーを設定し、環境変数を使用してそのサーバーのテストを指定したり、アプリケーションがテストDNS応答を作成するために使用する偽のDNSデータベースファイルを設定したりできます。最初のオプションは、DNSサーバーまたはDNSを含む統合サーバー(FreeIPAやSambaなど)をテストするのに役立ちます。 2番目のオプションは、クライアントサービスの自動検出をテストする必要があるクライアントテストに役立ちます。

この記事は引き続き完全な例を示すと言います(しかしこれはほんの一部です)。完全なソリューションを実装するのは難しいかもしれません。

関連情報