如何在挂载的文件系统上使用 chown
How to use chown on a mounted file system
我有一个根文件系统 RFS1,它有自己的组和用户,目前正被内核使用。我安装了另一个根文件系统 RFS2,它有自己的组和用户。如何在 RFS2 下的 file/directory 上 运行 chown 以从 RFS2 的 /etc/groups 下列出的组中创建所有者。
当 OS(linux) 使用 RFS1.
时,我正在执行 chown
既然你想把RFS2文件chown给一个RFS2用户,你不需要RFS1来chown,所以最直接的方法是chroot(1)。
您安装 RFS2,例如在 /mnt/rfs2
。然后按照指示 here.
chroot 进入目标 /mnt/rfs2
chroot
创建一个在 /mnt/rfs2
内被监禁的新进程。当该进程引用 /
时,OS 会将其翻译为 /mnt/rfs2
。如果进程引用 /hello/world
,OS 会将其翻译为 /mnt/rfs2/hello/world
。
如果 RFS2 有自己的用户,那么它就有自己的 /etc/passwd
,并且可以假设它有自己的 /bin/
、/usr/lib/
等
chroot 后,确保您的 PATH
与二进制文件的实际位置匹配。
在 chroot 监狱中,您执行的每个命令,例如 chown
,都会在 PATH
中搜索。它可能会在 /bin/chown
中找到,但现在是 RFS2 的 /bin/chown
(即 /mnt/rfs2/bin/chown
),而不是 RFS1 的。 chown 可能使用的每个动态库也将来自 RFS2 文件系统。
当你chown user:group
时,chown
会搜索/etc/passwd
和/etc/group
中的用户和组,但那是RFS2的密码和组文件。
完成后,您 运行 exit
和 chroot
为您创建的被监禁的 shell 进程将退出。当这一切发生时,机器上的其余进程仍在使用 RFS1。
我有一个根文件系统 RFS1,它有自己的组和用户,目前正被内核使用。我安装了另一个根文件系统 RFS2,它有自己的组和用户。如何在 RFS2 下的 file/directory 上 运行 chown 以从 RFS2 的 /etc/groups 下列出的组中创建所有者。 当 OS(linux) 使用 RFS1.
时,我正在执行 chown既然你想把RFS2文件chown给一个RFS2用户,你不需要RFS1来chown,所以最直接的方法是chroot(1)。
您安装 RFS2,例如在 /mnt/rfs2
。然后按照指示 here.
/mnt/rfs2
chroot
创建一个在 /mnt/rfs2
内被监禁的新进程。当该进程引用 /
时,OS 会将其翻译为 /mnt/rfs2
。如果进程引用 /hello/world
,OS 会将其翻译为 /mnt/rfs2/hello/world
。
如果 RFS2 有自己的用户,那么它就有自己的 /etc/passwd
,并且可以假设它有自己的 /bin/
、/usr/lib/
等
chroot 后,确保您的 PATH
与二进制文件的实际位置匹配。
在 chroot 监狱中,您执行的每个命令,例如 chown
,都会在 PATH
中搜索。它可能会在 /bin/chown
中找到,但现在是 RFS2 的 /bin/chown
(即 /mnt/rfs2/bin/chown
),而不是 RFS1 的。 chown 可能使用的每个动态库也将来自 RFS2 文件系统。
当你chown user:group
时,chown
会搜索/etc/passwd
和/etc/group
中的用户和组,但那是RFS2的密码和组文件。
完成后,您 运行 exit
和 chroot
为您创建的被监禁的 shell 进程将退出。当这一切发生时,机器上的其余进程仍在使用 RFS1。