18.7: /var/lib/postgresql is 755 instead of 1777, breaks running as an arbitrary user

Aberta Para iniciantes
#1,427 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
72/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
docker, postgresql
Domínio
databases

Direção de pesquisa

Comece lendo a seção do Dockerfile que define o modo 1777 para /var/lib/postgresql e a descrição da issue sobre a configuração de tmpfiles e a etapa pós-instalação do postgresql-common. Crie e execute a imagem baseada em Debian postgres:18.7 com um UID arbitrário, verificando o modo do diretório e se a inicialização é bem-sucedida. A tarefa estará concluída quando o diretório continuar utilizável por um UID arbitrário e o contêiner iniciar corretamente.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

We noticed this when our CI broke after postgres:18 moved to 18.7. We run the image as a service container on OpenShift, which starts it with an arbitrary UID, and it now exits at once:

$ docker run --rm --user 1000770000:0 -e POSTGRES_PASSWORD=x postgres:18.7
mkdir: cannot create directory ‘/var/lib/postgresql/18’: Permission denied

/var/lib/postgresql was 1777 and is now 755:

$ docker run --rm --entrypoint stat postgres:18.6 -c %a /var/lib/postgresql
1777
$ docker run --rm --entrypoint stat postgres:18.7 -c %a /var/lib/postgresql
755

It looks like postgresql-common 294 resets it: it now ships /usr/lib/tmpfiles.d/postgresql-common.conf with d /var/lib/postgresql 0755 postgres postgres, and its postinst runs systemd-tmpfiles --create, after the Dockerfile's install --mode 1777. The alpine variant still has 1777.

Linguagem predominante
Shell
Estrelas
2.5k
Forks
1.2k
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de docker-library/postgres

Todas as issues de docker-library/postgres

Issues semelhantes

Mais issues de Shell/Bash

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.