Добавление пользователя в среду chroot

Добавление пользователя в среду chroot

Я создал chroot-систему в своей Ubuntu с помощью schroot и debrootstrap, основанную на минимальной Ubuntu. Однако всякий раз, когда я не могу добавить нового пользователя в эту chroot-среду, вот что происходит.

  1. Я ввожу schroot как root и добавляю нового пользователя. (Пробовал команды adduser и useradd)
  2. Имя пользователя указано в файле /etc/passwd, и я могу войти в него с помощью 'su'. Пока все хорошо.
  3. Когда я выхожу из schroot и снова вхожу в schroot, созданный мной пользователь исчезает!! В /etc/passwd также нет упоминания об этом пользователе.

Как сделать нового пользователя постоянным?

решение1

О, я сам догадался. У Schroot есть функция под названием "сеансы", где можно сохранить текущую среду. Каждый раз, когда кто-то выходит из системы, не создавая "сеанс", schroot приводит все в чистое состояние и, следовательно, удаляет пользователя. Можно начать сеанс, используя

schroot -c mychroot -b 

решение2

На самом деле, есть лучшее решение, которое я нашел.Часто задаваемые вопросы о schroot, в разделеПочему schroot перезаписывает файлы конфигурации в chroot?

По умолчанию schroot копирует системные базы данных NSS ('passwd', 'shadow', 'group', 'gshadow', 'services', 'protocols', 'networks' и 'hosts' и т. д.) в chroot. Причина этого в том, что среда chroot не является полностью отдельной системой, и копирование их сохраняет их синхронизированными. Однако это не всегда желательно, особенно если установка пакета в chroot создает системных пользователей и группы, которых нет на хосте, поскольку они исчезнут при следующем копировании баз данных.

Суммируя:Каждый раз, когда вы начинаете новый сеанс schroot или после перезагрузки хост-системы, schroot захватывает /etc/passwdи некоторые другие файлы из вашей реальной системы и копирует их в chroot, тем самым теряя всех новых пользователей из нее. Предлагаемое решение описано в этом FAQ: вы можете отключить копирование этих файлов:

  1. Открыть /etc/schroot/default/nssdatabases(на вашей реальной системе, конечно)
  2. Вы увидите список так называемыхБазы данных НСС, которые скопированы из реальной системы.
  3. Закомментируйте строки passwd, groupи shadow, чтобы файл выглядел следующим образом:

/etc/schroot/default/nssdatabases

# System databases to copy into the chroot from the host system.
#
# <database name>
#passwd
#shadow
#group
services
protocols
networks
hosts

Теперь, если вы вернетесь в свой chroot и создадите несколько пользователей или установите postgresql и т. д., новые пользователи не будут потеряны. Даже после перезагрузки!

Связанный контент