Por que o `postgres` requer um shell?

13

Nos meus sistemas Debian Wheezy , notei que o usuário do postgres 'postgres', o "administrador do PostgreSQL", usa /bin/bashcomo shell. No entanto, não consigo descobrir por que isso é necessário. Alterar isso para /bin/falseainda me permite usar o comando psql.

Então, por que o usuário do sistema postgresexige um shell e precisa ser especificamente /bin/bash?

timothymctim
fonte
5
Isso foi necessário para o cronjob em execução pg_autovacuum.
Simon Richter

Respostas:

14

Confira Por que o usuário 'bin' precisa de um shell de login?

Ele diz que esse padrão para usuários do sistema é

  • Comum no Debian, e não tanto em outras distribuições.
  • Considerado um problema de bug / segurança genuína por várias pessoas.
  • Necessário para executar tarefas cron como esse usuário, e talvez também por alguns scripts se eles usarem su -c para executar como esse usuário. Deve ser fácil verificar isso. Verifique se há trabalhos cron pertencentes ao psql. Verifique se há scripts no pacote postgres ( dpkg-query -L) e grep-los para usar su.

Também é sugerido que, se sua principal preocupação é algum tipo de abuso deste usuário envolvendo logins SSH, pode ser conveniente usar o AllowGroups no sshd_config. (Criando um sshlogingrupo, conforme recomendado pelo Guia do Servidor Ubuntu ).

O padrão foi corrigido no sistema básico no início deste ano - veja o bug # 274229 . Portanto, se você acha que o postgres também pode ser corrigido, seria ótimo entrar em contato com os mantenedores do pacote, por exemplo, registrando um bug.

sourcejedi
fonte