Prática recomendada para executar imagens de contêiner como outro usuário

Prática recomendada para executar imagens de contêiner como outro usuário

Estou usando o Kubernetes e gostaria de executar um contêiner como usuário não root.

Se estou escrevendo meu próprio Dockerfile, posso useradd, chmod 777e executar com docker --user <username>.

Mas em alguns casos, a lista de arquivos que precisam ser chmodeditados pode ser longa e desconhecida, tornando-se um processo tedioso, podendo mudar com o tempo e causar erros que só são encontrados em tempo de execução.

Existe uma prática recomendada? Como você lidaria com pastas como /var/loge /var/run? Uma opção é touch/mkdir e usar setfacl.

O mais fácil é apenas chmod 777 -R /var/log.

777Mas isso também daria acesso ao contêiner no host? Como ele é mapeado quando o contêiner possui um conjunto de permissões, mas o host possui outro?

Responder1

Usar chmod 777basicamente nunca é a solução certa. Descubra como definir suas permissões corretamente. As permissões quase sempre devem ser as menores possíveis para atingir seu objetivo.

Como você faz isso depende muito do contexto da imagem específica e do software que você está executando.

Mas isso também daria ao contêiner 777 acesso ao host?

Depende se o caminho que você está alterando as permissões é ou será uma montagem de ligação.

Responder2

Achei isso relevante para minha própria pergunta:

O sistema de arquivos de sobreposição monta um diretório inferior e, em seguida, anexa um diretório superior ao ponto de montagem mesclado. Quando um processo grava em um novo arquivo no diretório mesclado, o novo arquivo é gravado no diretório superior. Quando um processo modifica um arquivo existente no diretório inferior, o kernel copia o arquivo do diretório inferior para o diretório superior e permite que o processo modifique o arquivo no diretório superior.

Portanto, chownem um diretório de sobreposição (superior) não deve ter efeito no diretório host (inferior).

Mas acho que chmod 777poderia permitir que outros usuários acessassem o sistema de arquivos de sobreposição no host.

informação relacionada