4

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

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

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

2 ответа2

4

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

schroot -c mychroot -b 
2

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

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

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

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

/ и т.д. / schroot / по умолчанию / nssdatabases

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

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

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