이 포럼에서 Error Interpreter 및 Permission Denied와 관련된 유사한 게시물을 보았지만 이 문제에 대한 해결책을 찾을 수 없습니다.
저는 vps Linux x64(v2.6.18, CentOS 6.7)를 사용하고 있습니다. 저는 클라이언트(OpenClinica)를 위한 특정 프로젝트를 진행 중이며 .bin 파일에서 직접 Postgresql 버전 8.4(제가 알고 있는 이전 버전)를 설치해야 합니다. postgresql-8.4.1-1-linux-x64.bin
내가 이해한 바에 따르면 파일 .bin
은 .sh
./tmp/postgresql_installer/
또한 이 파일이 제대로 작동하고 OpenClinica를 실행하는 다른 많은 Linux(CentOS) 시스템에 Postgres를 성공적으로 설치했다는 말을 들었습니다.
명령줄에서 루트로 실행할 때 다음을 입력합니다.
./postgresql* --mode text
나는 다음과 같은 우울한 메시지를 받았습니다.
Error:
Error running /tmp/postgresql_installer/getlocales.sh :
/bin/sh: /tmp/postgresql_installer/getlocales.sh:
/bin/sh: bad interpreter: Permission denied
내가 확인한 내용(이 포럼과 다른 포럼에서 확인함)
첫 번째 줄
getlocales.sh
에는#!/bin/sh
sh -> bash*
에 링크가 있습니다/bin
root@vps [/bin]# ls -l sh lrwxrwxrwx 1 root root 4 Nov 14 12:29 sh -> bash*
sestatus
장애가 있는실행하기 전에 권한을 부여했습니다
chmod x
.postgres*.bin
탈출도 시도했지만
postgres*.bin
소용~/
이 없었습니다.
어떤 아이디어가 있나요?
답변1
앞에서 언급했듯이 문제는 noexec를 사용하여 /tmp를 마운트하는 것입니다. 설명은 간단합니다. 일부 설치 스크립트는 /tmp에 실행 파일/스크립트의 압축을 풀고 실행을 시도합니다.
저는 실제로 몇 달 전 보안상의 이유로 몇몇 서버의 /tmp를 noexec로 변경한 후 일부 데비안 패키지의 설치/업데이트 스크립트가 작동을 멈췄을 때 이 문제를 우연히 발견했습니다. 일부러 변경을 했기 때문에 당시 문제점을 쉽게 발견할 수 있었습니다.
공용 네트워크 서버에서 /tmp를 noexec로 설정하는 것은 여전히 좋은 생각이라고 생각하지만 지금까지는 이 특정 문제를 해결하는 방법을 살펴보지 않았습니다.
답변2
기반으로루이의 대답, 나는 아래에 언급된 명령을 실행했습니다.
mount -o remount,exec /tmp