Как использовать chown в смонтированной файловой системе - PullRequest
1 голос
/ 06 мая 2020

У меня есть root файловая система RFS1, которая имеет свои собственные группы и пользователей и в настоящее время используется ядром. Я монтирую другую root файловую систему RFS2, у которой есть свои группы и пользователи. Как запустить chown для файла / каталога в RFS2, чтобы создать владельца из групп, перечисленных в / etc / groups RFS2. Я выполняю команду chown, пока ОС (linux) использует RFS1.

1 Ответ

0 голосов
/ 11 мая 2020

Поскольку вы хотите передать файлы RFS2 пользователю RFS2, вам не нужен RFS1 для chown, поэтому самый простой способ - ch root (1) .

Вы устанавливаете RFS2, например, на /mnt/rfs2. Затем вы вставляете root в цель /mnt/rfs2 в соответствии с инструкциями здесь .

chroot создает новый процесс, который заключен в тюрьму в /mnt/rfs2. Когда этот процесс обращается к /, ОС переводит его как /mnt/rfs2. Если процесс обращается к /hello/world, ОС переведет его как /mnt/rfs2/hello/world.

Если у RFS2 есть собственные пользователи, тогда у него есть свои /etc/passwd, и справедливо предположить, что у него есть свои /bin/, /usr/lib/ et c.

После chroot убедитесь, что ваш PATH соответствует тому месту, где на самом деле находятся двоичные файлы.

Внутри ch root jail, каждая выполняемая вами команда, например chown, будет найдена в PATH. Вероятно, он будет найден в /bin/chown, но теперь это RFS2 /bin/chown (а именно /mnt/rfs2/bin/chown), а не RFS1. Каждая библиотека динамического c, которую может использовать chown, также будет поступать из файловой системы RFS2.

Когда вы chown user:group, chown будет искать пользователя и группу в /etc/passwd и /etc/group, но это пароль RFS2 и файл группы.

Как только вы закончите, вы запустите exit, и заключенный в тюрьму процесс оболочки, созданный для вас chroot, завершится. Пока все это происходило, остальные процессы на компьютере все еще использовали RFS1.

...