For example, if I have the file hello.c which just contains:int main() {   printf(Hello world);   return 0;}and I built it in gcc with gcc hello.c -o hello I can then run ./hello and it runs.However, if I try to download a binary from the web with e.g. curl, I first have to set the permissions with chmod before I can run it. Is there a reason why? Do gcc and/or curl set some default permissions on the files?
Why is that when I download a binary from the web it doesn't have executable permissions set, but when I use gcc to build a binary it does?
permissions;executable;gcc