问题描述
我在我的 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 位。