5

I want to run program directly such as ./program without define the interpreter in shell first. so, how can i want to prevent this error?

bad interpreter: Permission denied

My operating system is redhat - CentOS release 5.6 (Final)

root@server [/tmp/mechanize-0.1.7b]# ./functional_tests.py 
-bash: ./functional_tests.py: /usr/bin/env: bad interpreter: Permission denied
root@server [/tmp/mechanize-0.1.7b]#
root@server [/tmp/Python-2.7.1]# ./configure 
-bash: ./configure: /bin/sh: bad interpreter: Permission denied
root@server [/tmp/Python-2.7.1]#
fixer1234
  • 27,064
  • 61
  • 75
  • 116
Yuda Prawira
  • 153
  • 1
  • 1
  • 7

2 Answers2

9

You're trying to execute programs from a partition mounted with the noexec option (likely /tmp). Either move them to a directory that is mounted with exec rights or use

mount -o remount,exec /tmp

(as root) to allow programs to be executed on /tmp. You can make this behavior persistent by removing the noexec option from /etc/fstab or your init scripts.

phihag
  • 2,737
  • 23
  • 33
  • still not work `root@server [/tmp/Python-2.7.1]# mount -o remount,exec /tmp root@server [/tmp/Python-2.7.1]# ./configure -bash: ./configure: /bin/sh: bad interpreter: Permission denied root@server [/tmp/Python-2.7.1]# ` – Yuda Prawira May 21 '11 at 19:32
  • @Gunslinger_ `/` could be mounted noexec, too. Can you give us the outputs of `mount` and `ls -l /bin/sh`? – phihag May 21 '11 at 19:50
2

Long-shot, but make sure that /tmp isn't mounted with the noexec mount option. That can give errors like that.

Mat
  • 8,043
  • 1
  • 33
  • 32