Linux Fakeroot путаница
У меня много путаницы из-за утилиты fakeroot. Я пытаюсь добавить символьный узел в папку /dev для двух rootfs. Владельцем rootfs_1 является я, тогда как владельцем second является root.
Владелец rootfs_1 - Я.
а. Если я сделаю ls -l. Я вижу владельца как "Я Я"
б. Я пытаюсь создать узел, используя mknod в rootfs_1/dev, и это не удается.
с. Команда $fakeroot проходит.
д. ls -al. Я вижу владельца как root (который я знаю, это подделка)
е. Теперь я могу создать узел в rootfs_1/dev с помощью mknod.
е. выход
г. Вновь созданный узел имеет владельца "Я", который я ожидал.владелец rootfs_2 - root
а. ls -l. Я вижу владельца как "root root"
б. Я пытаюсь создать узел, используя mknod в rootfs_2/dev, и он терпит неудачу. (Ожидается)
с. Команда $fakeroot проходит.
д. Теперь я пытаюсь создать узел, и он терпит неудачу.
Теперь я знаю, что поведение ожидается. Но меня смущает то, как работает fakeroot и поток системных вызовов через fakeroot. Я думаю, что fakeroot делает трюк LD_PRELOAD.
Может кто-нибудь объяснить в деталях, почему дело 1 работает, а дело 2 - неудачно.
Спасибо
1 ответ
Все, что делает fakeroot, - это отслеживает "фальшивого" владельца файлов, которые изменяются, пока он активен. Он не моделирует никакие другие операции с файловой системой, такие как создание файлов, поэтому вы все равно не можете создавать файлы в корневом каталоге, даже если он активен.