【问题标题】:'Permission denied' issue when executing a file downloaded from Github执行从 Github 下载的文件时出现“权限被拒绝”问题
【发布时间】:2021-07-26 16:30:24
【问题描述】:

我在我的 Ubuntu 16.04 上编译了一个程序。当

ls -l <filename> 

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

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

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

chmod u+x <filename>

然后执行该文件,不会出现这样的错误。

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

【问题讨论】:

  • 定义“下载”。他们是在克隆 git 存储库吗?他们是否从发布部分下载文件(如果是,是什么格式)?
  • @Quentin 他们正在克隆存储库。

标签: ubuntu file-permissions chmod


【解决方案1】:

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

您可以创建一个tar(1) 存档。这保留了执行位,当接收方提取它时,tar 二进制文件将再次设置 x 位。

【讨论】:

  • 感谢您的回答。所以我所要做的就是-> tar -czvf filename.tar.gz /path/to/myfile ,(不需要额外的标志来保留权限,对吧?)然后将其上传到我的仓库?
  • 此外,将 tarball(压缩的 tar 存档)附加到软件版本是常见的做法。也许这就是原因,但我不知道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
相关资源
最近更新 更多