Estou tentando configurar o PostgreSQL para uso local na minha área de trabalho e me deparei com um problema estranho. Não consigo encontrar uma maneira simples de tornar o cluster de banco de dados (que é apenas um diretório) acessível apenas ao usuário do postgres e completamente acessível ao mesmo. Em outras palavras, eu quero que o postgres (o usuário) tenha acesso total ao diretório, mas todos os outros apenas possam ler o que há nele (para que os arquivos possam ser copiados).
Criei o usuário 'postgres', removi-o de todos os grupos e neguei permissão de gravação para o grupo 'Usuários'. No entanto, quando tento inicializar o banco de dados, o usuário do postgres parece não conseguir gravar no diretório - depois que removo a negação de gravação de 'Usuários', ele funciona bem.
Eu sei que poderia fazer algo como negar permissões de gravação para meu usuário padrão (essencialmente eu), mas esse usuário pertence a 'Administradores' e não a 'Usuários'. Como aparentemente todos os usuários pertencem a 'Usuários' implicitamente e a negação tem precedência, receio que eu esteja negando a mim mesmo, o único administrador, a capacidade de modificar esse diretório a qualquer momento no futuro.
Eu já vi algumas outras instruções que envolvem a Diretiva de Grupo etc., mas elas não parecem ser específicas o suficiente e o processo parece muito complicado, o que me faz pensar que estou entendendo completamente as permissões de NTFS / Windows. Esse sentimento é ainda mais agravado pelo fato de que eu posso pensar em como fazer isso no Linux em 5 minutos e simplesmente. Eu nem tenho certeza se é possível neste momento.
Como eu daria acesso exclusivo a um usuário específico em um diretório e mais ninguém?
edit: Eu acho que posso resumir essa pergunta em uma mais simples: existe alguma maneira de impedir algo de um usuário que pertence ao grupo Administrador? E se você fizesse isso, seria capaz de restaurar as permissões como costumavam ser?
fonte
Respostas:
Você não precisa negar permissões para isso, nem remover
postgres
doUsers
grupo. Este grupo deve ter acesso de leitura ao diretório, mas nenhum acesso de gravação. Observe que não é o mesmo que negação, você só precisa garantir que o diretório do cluster não herda nenhuma permissão do pai e, em seguida, atribua manualmente as permissões de leitura aoUsers
grupo. Em seguida, atribua a ele permissões de gravaçãopostgres
apenas para o usuário e está tudo pronto.Edit: se a explicação acima não for clara o suficiente, aqui está uma captura de tela e um artigo .
fonte