Just now I created a Unix file test as follows:

#!/bin/csh
echo zot

I gave it permissions as follows:
hayek% ls -lt test
-rwx--x--x   1 norm     agorics       27 Feb  1 09:52 test*

Thus allowing others to execute, but not read, the file. The "#!" means that the rest of the line is the name of a program that is to interpret and obey the rest of the lines in the file. "/bin/csh" is the name of a file holding a shell program that will print "zot" upon obeying the command "echo zot".

Others got "Permission denied" or a total hang upon trying to execute my file. It was eventually pointed out that /bin/csh had to read the file to obey it and /bin/csh ran with the other's authority which didn't permit reading.

The kernel is the program that knows the meaning of "#!". My file gave the kernel explicit instructions that /bin/csh was the program to obey the file. The kernel knew that interpreters obey files by reading them. It should have conveyed read only access for the file to /bin/csh.