Adicionando usuário ao ambiente chroot

Adicionando usuário ao ambiente chroot

Eu criei um sistema chroot no meu Ubuntu usando schroot e debrootstrap, baseado no Ubuntu mínimo. No entanto, sempre que não consigo adicionar um novo usuário a este ambiente chroot. Aqui está o que acontece.

  1. Eu insiro schroot como root e adiciono um novo usuário. (Tentei os comandos adduser e useradd)
  2. O nome de usuário está listado no arquivo /etc/passwd e posso 'su' no novo usuário. Até agora tudo bem.
  3. Quando eu saio do schroot e entro novamente no schroot, o usuário que criei desapareceu!! Também não há menção a esse usuário em /etc/passwd.

Como posso tornar o novo usuário permanente?

Responder1

Ah, eu mesmo descobri. Schroot possui um recurso chamado “sessões” onde o ambiente atual pode ser preservado. Cada vez que alguém efetua logout sem criar uma "sessão", o schroot traz tudo para o estado limpo e, portanto, exclui o usuário também. Pode-se iniciar uma sessão usando

schroot -c mychroot -b 

Responder2

Na verdade, há uma solução alternativa melhor, que eu encontreiPerguntas frequentes sobre o schroot, na seçãoPor que o schroot está sobrescrevendo os arquivos de configuração no chroot?

Por padrão, o schroot copia os bancos de dados NSS do sistema ('passwd', 'shadow', 'group', 'gshadow', 'services', 'protocols', 'networks' e 'hosts', etc.) para o chroot . A razão para isso é que o ambiente chroot não é um sistema completamente separado e copiá-los os mantém sincronizados. Contudo, isto nem sempre é desejável, particularmente se a instalação de um pacote no chroot criar usuários e grupos do sistema que não estão presentes no host, pois estes desaparecerão na próxima vez que os bancos de dados forem copiados.

Resumidamente:cada vez que você inicia uma nova sessão do schroot, ou após a reinicialização do sistema host, o schroot captura /etc/passwdalguns outros arquivos do seu sistema real e os copia para o chroot, perdendo assim todos os novos usuários dele. A solução sugerida está descrita nesta FAQ: você pode desabilitar a cópia destes arquivos:

  1. Aberto /etc/schroot/default/nssdatabases(no seu sistema real, é claro)
  2. Você verá a lista dos chamadosBancos de dados NSS, que são copiados do sistema real.
  3. Comente as linhas passwd, groupe shadow, para que o arquivo fique assim:

/etc/schroot/default/nssdatabases

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

Agora, se você voltar ao seu chroot e criar alguns usuários, ou instalar algum postgresql etc, novos usuários não serão perdidos. Mesmo depois de reiniciar!

informação relacionada