如何在已安装的文件系统上使用chown

问题描述 投票:1回答:1

我有一个根文件系统RFS1,它具有自己的组和用户,并且当前正在被内核使用。我安装了另一个具有自己的组和用户的根文件系统RFS2。如何在RFS2下的文件/目录上运行chown以从RFS2的/ etc / groups下列出的组内创建所有者。当OS(linux)使用RFS1时,我正在执行chown。

bash filesystems embedded-linux mount chown
1个回答
0
投票

由于您想将RFS2文件整理给RFS2用户,因此您不需要RFS1整理,所以最直接的方法是chroot(1)

您安装了RFS2,例如在/mnt/rfs2上。然后,按照/mnt/rfs2的指示将其根目录到目标here

chroot创建一个在/mnt/rfs2中入狱的新进程。当该过程引用/时,操作系统会将其转换为/mnt/rfs2。如果进程引用/hello/world,则操作系统会将其翻译为/mnt/rfs2/hello/world

如果RFS2有自己的用户,那么它就有自己的/etc/passwd,可以公平地假设它拥有自己的/bin//usr/lib/等。>

一旦更改根目录,请确保您的PATH与二进制文件的实际位置匹配。

在chroot监狱中,将在PATH中搜索您执行的每个命令,例如chown。它可能在PATH中找到,但是现在是RFS2的/bin/chown(即/bin/chown),而不是RFS1的。 chown可能使用的每个动态库也将来自RFS2文件系统。

[当您使用/mnt/rfs2/bin/chown时,chown user:group将在chown/etc/passwd中搜索用户和组,但是它们是RFS2的密码和组文件。

完成后,您将运行/etc/groupexit为您创建的被监禁的Shell进程将退出。尽管发生了所有这些事情,但计算机上的其余过程仍在使用RFS1。

© www.soinside.com 2019 - 2024. All rights reserved.