Linux Fakeroot путаница

У меня много путаницы из-за утилиты fakeroot. Я пытаюсь добавить символьный узел в папку /dev для двух rootfs. Владельцем rootfs_1 является я, тогда как владельцем second является root.

  1. Владелец rootfs_1 - Я.
    а. Если я сделаю ls -l. Я вижу владельца как "Я Я"
    б. Я пытаюсь создать узел, используя mknod в rootfs_1/dev, и это не удается.
    с. Команда $fakeroot проходит.
    д. ls -al. Я вижу владельца как root (который я знаю, это подделка)
    е. Теперь я могу создать узел в rootfs_1/dev с помощью mknod.
    е. выход
    г. Вновь созданный узел имеет владельца "Я", который я ожидал.

  2. владелец rootfs_2 - root
    а. ls -l. Я вижу владельца как "root root"
    б. Я пытаюсь создать узел, используя mknod в rootfs_2/dev, и он терпит неудачу. (Ожидается)
    с. Команда $fakeroot проходит.
    д. Теперь я пытаюсь создать узел, и он терпит неудачу.

Теперь я знаю, что поведение ожидается. Но меня смущает то, как работает fakeroot и поток системных вызовов через fakeroot. Я думаю, что fakeroot делает трюк LD_PRELOAD.

Может кто-нибудь объяснить в деталях, почему дело 1 работает, а дело 2 - неудачно.

Спасибо

1 ответ

Решение

Все, что делает fakeroot, - это отслеживает "фальшивого" владельца файлов, которые изменяются, пока он активен. Он не моделирует никакие другие операции с файловой системой, такие как создание файлов, поэтому вы все равно не можете создавать файлы в корневом каталоге, даже если он активен.

Другие вопросы по тегам