0

我对 fakeroot 实用程序有很多困惑。我正在尝试将字符节点添加到 /dev 文件夹到两个 rootfs。rootfs_1 的所有者是我自己,而第二个的所有者是 root。

  1. rootfs_1 所有者是我。
    一种。如果我做 ls -l. 我将所有者视为“我我”
    b. 我尝试在 rootfs_1/dev 中使用 mknod 创建一个节点,但它失败了。
    C。$fakeroot 命令通过。
    d。ls -al。我将所有者视为 root (我知道这是假的)
    e。现在我可以使用 mknod 在 rootfs_1/dev 中创建一个节点。
    F。退出
    g。新创建的节点的所有者是我所期望的“我”。

  2. rootfs_2 所有者是 root
    a。ls -l。我将所有者视为“root root”
    b。我尝试在 rootfs_2/dev 中使用 mknod 创建一个节点,但它失败了。(预期)
    c。$fakeroot 命令通过。
    d。现在我尝试创建一个节点,但它失败了。

现在,我知道这种行为是预期的。但是我对 fakeroot 的工作原理以及系统调用通过 fakeroot 的流程感到困惑。我认为 fakeroot 做了 LD_PRELOAD 把戏。

任何人都可以详细解释为什么案例 1 有效而案例 2 失败。

谢谢

4

1 回答 1

3

fakeroot 所做的只是跟踪处于活动状态时被修改的文件的“假”所有者。它不模拟任何其他文件系统操作,例如文件创建,因此即使它处于活动状态,您仍然无法在 root 拥有的目录中创建文件。

于 2012-04-23T23:03:20.343 回答