Monte o diretório guest LXD sem destruir dados e propriedade

1

Eu criei um convidado LXD para hospedar meu servidor da web e para acessar facilmente a raiz do documento, eu fiz:

lxc config device add guest sharedhtml disk path=/document/root/ source=/home/$USER/public_html

Isso fez duas coisas:

  • substituiu completamente /document/root/ por public_html/ (todos os arquivos padrão do servidor da Web desapareceram, pois public-html está vazio)
  • destruiu as configurações de propriedade de /document/root ; o diretório e os arquivos criados em public_html/ agora pertencem a nobody:nogroup

Pelo que entendi, isso é mais como uma montagem reversa; em vez de montar o diretório do convidado, o diretório do host é montado reversamente com força no convidado.

Como posso montar o diretório convidado no host sem destruir o conteúdo existente para que as alterações herdem as configurações de propriedade do diretório de convidados?

Bônus: como eu removo o device que está montando o diretório?

    
por Oxwivi 27.10.2015 / 09:01

1 resposta

1

Para remover a entrada que você criou, faça o seguinte:

lxc config device remove sharedhtml

Agora parece que o LXD fez exatamente o que deveria fazer neste caso. O comando que você executou instrui o LXD a montar / home / $ USER / public_html do host no container como o container / document / root

Como os contêineres LXD são executados usando um mapa uid / gid diferente do host, a propriedade dos arquivos do host não pode ser renderizada dentro do contêiner, levando ao kernel mostrando-os como nobody: nogroup.

Não há mecanismo para ter um caminho dentro do contêiner montado no host e é improvável que o adicionemos em breve.

De qualquer forma, no seu caso, o que você provavelmente deveria estar fazendo é ter um caminho de armazenamento no host para os arquivos do seu servidor web, então ter essa configuração como uma entrada de disco do dispositivo no LXD para montá-lo no local correto o recipiente.

Em seguida, defina POSIX ACLs no host para que o Uid / gid do contêiner possa acessar os arquivos e seu próprio usuário também.

Na maioria dos casos, o container uid e gid no host será 165536 + uid ou gid dentro do container. Uma maneira mais fácil de descobrir isso é fazer com que o caminho no host seja temporariamente gravável, em seguida, escreva algo no caminho dentro do contêiner e confirme quem aparece como o proprietário no host.

    
por stgraber 23.11.2015 / 18:45