use*_*425 6 permissions gcc executable
例如,如果我的文件 hello.c 只包含:
int main() {
printf("Hello world");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在 gcc 中构建了它,gcc hello.c -o hello
然后我可以运行./hello
它并运行。
但是,如果我尝试使用 eg 从网络下载二进制文件,则curl
必须先使用 chmod 设置权限,然后才能运行它。有什么原因吗?gcc 和/或 curl 是否为文件设置了一些默认权限?
怎么curl
知道文件是可执行的?从技术上讲,它可以检查其内容,但远远超出了它的curl
意图。
默认权限由umask
( http://en.wikipedia.org/wiki/Umask )确定,并且在从umask
程序派生的权限之上可以添加可执行位(或完全使用不同的权限)。例如,gcc
知道它正在制作可执行文件并因此设置 exec 位。另一方面curl
并不意味着创建可执行文件,因此只使用默认权限。