1

Я хочу отредактировать файл /etc/pam.d/common-auth моей системы с live CD (угадайте, почему ...).

Я выполнил следующие команды:

sudo su
cd /mnt
mkdir os
cd os
mkdir dev sys lib lib64 bin etc proc home boot
mount /dev/sda8 /mnt/os
mount /dev/sda9 /mnt/os/home
mount /dev/sda1 /mnt/os/boot
mount --rbind /sys /mnt/os/sys
mount --rbind /proc /mnt/os/proc
mount --rbind /dev /mnt/os/dev
mount --rbind /bin /mnt/os/bin
mount --rbind /lib /mnt/os/lib
mount --rbind /lib64 /mnt/os/lib64
mount --rbind /etc /mnt/os/etc
chroot /mnt/os

После этого я все еще получаю строку root@kubuntu:/# . Я думал, что это изменит kubuntu на имя моего компьютера или что-то другое. Но я нахожусь на моем компьютере, потому что, когда я cd /mnt у меня нет директории os но другие. /home также правильно смонтирован - я вижу все свои файлы. Итак, после того, как я захожу в /etc/pam.d и проверяю cat common-auth я не вижу файл моего компьютера, кроме файла Kubuntu. Почему я сделал не так?

Кстати, когда я cat файл до chroot, он такой же, как и после chroot .

1 ответ1

1

В вашей процедуре есть несколько ошибок:

  1. Вам не нужно пересоздавать какие-либо папки в /mnt/os с помощью mkdir. После подключения диска к папке все содержимое исходной папки временно скрывается и заменяется содержимым подключенного диска. Ваш /dev/sda8 скорее всего, уже содержит эти папки - и если нет, то они не будут созданы таким образом.

  2. То же относится и к Mount-Bind. Вы не можете редактировать конфигурацию PAM на вашем диске /dev/sda потому что вы заменяете папку /etc с вашего диска на папку с live cd перед вызовом chroot.

  3. Более того, вам не нужно связывать ничего, кроме /dev , /proc и /sys с вашей средой chroot. Эти папки содержат абстрактные файлы, которые представляют устройства и части операционной системы. Они генерируются вашим ядром при загрузке или во время выполнения и должны быть доступны в среде chroot, в противном случае некоторые программы могут не работать. Если вы не смонтируете эти папки, они будут отображаться пустыми в вашем /dev/sda8 при просмотре с live cd. Вы можете найти краткий обзор того, что каждая папка в файловой системе Unix должна содержать в википедии.

  4. Единственная причина, по которой вам нужно связать /bin или /lib , заключается в том, что архитектура или ядро системы на live cd несовместимо с файловой системой на вашем жестком диске. Но в этом случае было бы не очень хорошей идеей использовать такие возможности - это не приносит никакой пользы.

Наконец, если вы редактируете только файлы конфигурации, вам не нужно загружаться в ваш диск. Вы можете просто смонтировать корневой раздел и напрямую отредактировать файл из live cd system с помощью предустановленного редактора, такого как nano:

mount /dev/sda8 /mnt
nano /mnt/etc/pam.d/common-auth

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .