Say someone has a shell script named Foo.sh in his current working directory. It reads like
#!/bin/bash #some scripts below
In order to run the script by typing "./Foo.sh", he needs execution permission with it. Instead he can choose to execute the script by simply do "bash Foo.sh", passing the script as an argument to program bash. In the latter case, he only needs read permission.
This seems permission inversion to me, that is, a user can execute an executable that he has no permission to execute.
My question is:
Is this an intentional design which has some soundness behind it, or a legacy problem, preserved solely for compatibility reasons?
Does this has some security implications?