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
別のシェルにログインしても、ホストのホスト名はに設定されます。
ホスト名が変更されたのはなぜですか? chrootの内部でタスクが実行されたときにchrootの外部で変更される可能性がある他のものはありますか?
ベストアンサー1
実行すると、hostname buster-test
実行中のカーネルのホスト名が変更されます(Linuxでは、UTS名前空間)。chroot
これはまったく制御できないため、ホスト名の変更は外部でも表示できます。
これにより、chroot
ファイルシステムの一部にのみアクセスが制限されます。ファイルシステムで管理されていない項目には影響しませんchroot
。これには、ネットワーク設定、日付と時刻、ユーザー権限などが含まれます。これらの変更を制限するには、以下を使用する必要があります。名前空間(またはLinux以外のシステムの同様の技術)Linuxでは、以下を実行してプロセスを分離できます。unshare
。