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]#
1
  • Odd. Off-topic, but ... "have" /bin/sh and it is +x'ed?
    – pst
    May 21, 2011 at 18:46

2 Answers 2

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.

2
  • 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]# May 21, 2011 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, 2011 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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .