![Adicionando usuário ao ambiente chroot](https://rvso.com/image/1263752/Adicionando%20usu%C3%A1rio%20ao%20ambiente%20chroot.png)
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.
- Eu insiro schroot como root e adiciono um novo usuário. (Tentei os comandos adduser e useradd)
- O nome de usuário está listado no arquivo /etc/passwd e posso 'su' no novo usuário. Até agora tudo bem.
- 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/passwd
alguns 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:
- Aberto
/etc/schroot/default/nssdatabases
(no seu sistema real, é claro) - Você verá a lista dos chamadosBancos de dados NSS, que são copiados do sistema real.
- Comente as linhas
passwd
,group
eshadow
, 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!