Chroot
在 chroot 環境中更改主機名也會更改外部主機名
我用 chroot 進入我的測試系統
mount /dev/vg0/vm01.buster-test-disk /media/vm01.buster-test-disk/ mount -t proc none /media/vm01.buster-test-disk/proc mount --bind /dev /media/vm01.buster-test-disk/dev mount -t sysfs sysfs /media/vm01.buster-test-disk/sys chroot /media/vm01.buster-test-disk/ /bin/bash
調整主機名並退出
hostname buster-test echo buster-test > /etc/hostname echo "127.0.0.1 buster-test" >> /etc/hosts exit
解除安裝
umount /media/vm01.buster-test-disk/proc umount /media/vm01.buster-test-disk/dev umount /media/vm01.buster-test-disk/sys umount -l /media/vm01.buster-test-disk
問題
現在主機的主機名設置為
buster-test
即使我在另一個 shell 中登錄為什麼主機名變了?當在 chroot 內部做事時,還有其他可以改變的東西嗎?
Running
hostname buster-test
更改了正在執行的核心中的主機名(在 Linux 上,在目前的UTS 命名空間中)。chroot
其本身根本無法控制它,因此主機名更改在外部也可見。當您使用 時
chroot
,您只是限制對文件系統的一部分的訪問;任何不在文件系統中管理的東西都不會受到chroot
. 這包括網路設置、日期和時間、使用者權限等。要限制此類更改,您需要使用命名空間(或非 Linux 系統上的類似技術);在 Linux 上,您可以通過使用unshare
.