Duas ideias:
- Crie seu usuário
postgres
antes de instalar o PostgreSQL, usando o UID correto. - Crie seu próprio pacote postgresql-9.1 personalizado que instala o pacote postgresql-9.1 e, em seguida, faz o
chown
.
Contexto:
Estou instalando automaticamente o postgresql-9.1
em um servidor Ubuntu com apt-get
. Isso cria o usuário postgres
necessário.
Os dados do Postgres estão em um volume externo que sobrevive a reinstalações. Esses dados são obviamente de propriedade do usuário postgres
.
O problema que estou tendo é que a propriedade não é registrada com o nome postgres
, mas sob o UID que postgres
tinha no momento da criação. Quando o servidor é reinstalado, postgres
às vezes recebe um UID diferente e não possui mais o diretório de dados, e, portanto, não funciona .
Pergunta:
Posso forçar o UID do usuário postgres
criado por apt-get
para algo fixo? Ou existe outra maneira de resolver meu problema?
(Como você deve ter deduzido, isso está no Amazon EC2 com os dados em um volume do EBS)
usermod -u {desired_UID} {username}
Roube isso aqui: Blog do Lethe
Mas eu realmente acho que um chown seria melhor do que isso, já que não pode falhar porque o desired_UID
já está sendo usado ou o conflito está carregado de outras maneiras.
Eu poderia adicionar um chown
do diretório de dados ao script de configuração do servidor, mas preferiria uma solução mais elegante. Também porque existem outros serviços, como o Tomcat, que têm o mesmo problema.
Tags amazon-ec2 linux filesystems ubuntu