/ bin / sh: intérprete incorreto: Permissão negada ao instalar o Postgres

2

Já consultei publicações semelhantes neste fórum relacionadas com intérprete incorreto e permissões negadas e não consegui encontrar uma solução para este problema.

Eu tenho um vps Linux x64 (v2.6.18; CentOS 6.7). Eu estou trabalhando em um projeto específico (OpenClinica) para um cliente e preciso instalar o Postgresql versão 8.4 (versão antiga, eu sei) diretamente de um arquivo .bin. O arquivo parece com postgresql-8.4.1-1-linux-x64.bin . Pelo que entendi, esse arquivo .bin cria alguns arquivos .sh em /tmp/postgresql_installer/ .

Também me disseram que este arquivo funciona bem e já executou com sucesso as instalações do Postgres em muitos outros sistemas Linux (CentOS) executando o OpenClinica.

Quando eu executo como root na linha de comando digitando isto

./postgresql* --mode text

Recebo a mensagem frustrante abaixo.

Error: 
Error running /tmp/postgresql_installer/getlocales.sh  : 
/bin/sh: /tmp/postgresql_installer/getlocales.sh: 
/bin/sh: bad interpreter: Permission denied

O que eu já verifiquei (procurando neste e em outros fóruns)

  1. a primeira linha de getlocales.sh tem #!/bin/sh

  2. há um link sh -> bash* at /bin

    root@vps [/bin]# ls -l sh
    lrwxrwxrwx 1 root root 4 Nov 14 12:29 sh -> bash*
    
  3. sestatus está DESATIVADO

  4. Eu dei a chmod x permissão para postgres*.bin antes de executá-la.

  5. Eu até tentei executar postgres*.bin de ~/ sem sucesso.

Alguma idéia?

    
por Newbie186 14.11.2015 / 22:08

1 resposta

3

Como dito, o problema era ter / tmp montado com noexec. A explicação é bem simples, alguns scripts de instalação descomprimem executáveis / scripts em / tmp e então tentam executá-los.

Eu realmente tropecei nesse problema também por acaso algumas luas atrás, quando mudei em alguns servidores / tmp para ser noexec por razões de segurança, e então os scripts de instalação / atualização de alguns pacotes Debian pararam de funcionar. Como eu mudei de propósito, foi muito fácil identificar o problema no momento.

Eu ainda acho que é uma boa idéia definir / tmp para noexec em servidores web públicos, no entanto até agora eu não pesquisei muito como contornar este problema em particular.

    
por 15.11.2015 / 23:13