Executando um script de inicialização init.d como um usuário não-root (relacionado ao PostgreSQL)

1

No momento, estou instalando o PostgreSQL a partir do código-fonte em um sistema RHEL6. Eu geralmente tenho seguido a documentação oficial para orientação ( link ).

Infelizmente, não há muita informação através dos scripts init.d / startup. Aqui está o que eu estou lutando atualmente:

  • o script de inicialização do OOB ( link ) é copiado para /etc/init.d/postgres com ligeiras modificações refletir meu ambiente (por exemplo, prefixo, caminho de dados, etc); arquivo é de propriedade por raiz e tem 755 permissões
  • os seguintes comandos são executados como root para garantir a execução boot: chkconfig --add postgresql; chkconfig postgresql em;
  • como root, o script é executado sem problemas (por exemplo, /etc/init.d/postgresql status)
  • no entanto, o script retorna com um prompt de senha quando é executado como o usuário postgres (o usuário que está configurado para executar PostgreSQL)

Essa experiência é muito diferente de como a versão empacotada (ou seja, RPM) das funções do PostgreSQL. Eu sou capaz de executar o script como root e como postgres:

[root@ulvjived80 ~]# /etc/init.d/postgresql-9.4 status
postgresql-9.4 is stopped

[postgres@ulvjived80 ~]$ /etc/init.d/postgresql-9.4  status
postgresql-9.4 is stopped

Eu fiz um pouco de pesquisa on-line e a solução mais citada que encontrei diz respeito a permitir o comando / script para o usuário relevante no arquivo / etc / sudoers. No entanto, o RPM não parece fazer isso.

Um aplicativo comercial que usamos também se comporta da mesma maneira, ou seja, o script de inicialização pode ser executado pelo usuário root e pelo usuário não root relevante.

Existe alguma idéia de como eu posso imitar a funcionalidade RPMs?

Obrigado!

    
por R Law 23.03.2016 / 22:41

0 respostas