执行从 Github 下载的文件时出现“权限被拒绝”问题

问题描述

我在我的 Ubuntu 16.04 上编译了一个程序。什么时候

ls -l <filename> 

运行,它在我的计算机上产生以下输出,这表明任何人都可以执行此文件(我猜?)-

-rwxr-xr-x 1 ritwik ritwik 10132280 May  4 12:44 <filename>

然后我把这个文件上传到了github。现在,当有人从我的 github 存储库下载此文件并在他们的计算机上执行时,它会抛出“权限被拒绝”错误。但是,当它们运行时 -

chmod u+x <filename>

后执行文件,没有出现这样的错误

如何在上传之前更改权限,以便用户不必自己更改权限(不必执行 chmod 操作)?

解决方法

这不是直接可能的,因为当您下载文件时,它会在接收方的机器上创建,然后由通过网络到达的内容填充。

您可以制作 tar(1) 存档。这会保留执行位,当接收者提取它时,tar 二进制文件将再次设置 x 位。