On Mon, 5 Aug 2019 18:18:52, Lavrentiev, Anton (NIH/NLM/NCBI) [C] via cygwin" wrote: > Hi, > > Please consider the following shell session: > > $ cat dummy.c > #include <stdio.h> > > int main() > { > return 0; > } > $ gcc -o dummy dummy.c > $ mv dummy.exe dummy > $ ./dummy > $ echo $? > 0 > $ chmod a-x dummy > $ ./dummy > -bash: ./dummy: Permission denied > $ rm dummy > $ touch dummy > $ ./dummy > $ echo $? > 0 > > So Cygwin lets the shell to execute a zero-sized file regardless of > the "x" perm ...
zero-sized? Irrelevant. [snip] > Is that expected? On Unix, an empty file can only be executed (exit > code 0) if there's the "x" permission granted. Yes, Cygwin != Linux. 64-@@ echo date > dummy 64-@@ ls -l dummy -rw-r--r-- 1 Henri None 5 Aug 6 08:01 dummy 64-@@ ./dummy Tue Aug 6 08:01:19 CEST 2019 64-@@ dash $ ./dummy Tue Aug 6 08:01:38 CEST 2019 <==== (execution by /bin/sh) $ mv /bin/sh /bin/OOS $ ls -l /bin/sh.exe ls: cannot access '/bin/sh.exe': No such file or directory $ ./dummy dash: 4: ./dummy: not found <==== attempted to execute "script" using /bin/sh Also study: https://stackoverflow.com/questions/7268437/bash-script-execution-with-and-without-shebang-in-linux-and-bsd ( Bash script execution with and without shebang in Linux and BSD ) and http://www.faqs.org/faqs/unix-faq/faq/part3/section-16.html Henri -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple