簡単に言えば、私に特権アクセス権がないので、~/hosts
それを上書きできるファイルを取得できるかどうか疑問に思います。/etc/hosts
私が使用しているコンピュータには正しいDNSサーバーが設定されているようです。通常のコンピュータにpingを試みるとき名前私はそれを使用しており、失敗します。しかし、私がそれらを通してpingしようとしたときIPアドレス期待どおりに動作します。
スクリプトやその他の変更を避けたいです。マッスルメモリー手作りのコマンドライン™ 機械構成が悪いので作った。システム管理者に連絡しましたが、別のことがありました。
どのように実装できますか?
答え1
LD_PRELOADトリックに追加されます。そうでない場合は、簡単な選択肢は次のように自分の場所にnscd
コピーすることです。libnss_files.so
mkdir -p -- ~/lib &&
cp /lib/x86_64-linux-gnu/libnss_files.so.2 ~/lib
コピーをバイナリ編集して、/etc/hosts
同じ長さのものに置き換えます/tmp/hosts
。
perl -pi -e 's:/etc/hosts:/tmp/hosts:g' ~/lib/libnss_files.so.2
/tmp/hosts
必須項目を追加するには編集してください。そして使用
export LD_LIBRARY_PATH=~/lib
代わりにnss_files
見に来てください。/tmp/hosts
/etc/hosts
代わりに/tmp/hosts
、あなたはそれをすることができ、その後それを行う/dev/fd//3
ことができます
exec 3< ~/hosts
たとえば、これにより、異なるコマンドで異なるファイルを使用できますhosts
。
$ cat hosts
1.2.3.4 asdasd
$ LD_LIBRARY_PATH=~/lib getent hosts asdasd 3< ~/hosts
1.2.3.4 asdasd
インストールして実行している場合は、nscd
同じ方法で問題を解決できますが、今回はlibc.so.6
nscdソケットへのパス(たとえば/var/run/nscd/socket
)を存在しないパスに置き換えます。