2017-06-05 81 views
0

在linux shell腳本中,我想暫時更改dns地址。 爲此,我可以在shell運行之後立即將temprary dns地址插入resolv.conf,並在腳本結束之前將其刪除。而已。Linux shell臨時DNS

但問題是,腳本運行時,所有其他腳本也都碰到地址。 這不是我所期望的。 是不是有另一種方法可以在不影響其他方面的情況下暫時在shell中更改dns?

+0

Stack Overflow是編程和開發問題的網站。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。另請參閱[我在哪裏發佈有關Dev Ops的問題?](http://meta.stackexchange.com/q/134306) – jww

回答

1

不能幫助你。取消共享幫助運行程序,其中一些命名空間與父母共享。使用unshare你可以使用你的自定義resolv.conf限於你的腳本會話&不會影響其他系統用戶和查詢。

sudo unshare --mount bash -s <<'EOF' 
    mount --bind custom_resolv.conf /etc/resolv.conf 
    sudo -u username run_command 
    EOF