build.sh 文件的权限被拒绝
Posted
技术标签:
【中文标题】build.sh 文件的权限被拒绝【英文标题】:Permission denied for build.sh file 【发布时间】:2017-06-28 12:54:19 【问题描述】:$ ./build.sh --quiet verify
/home/travis/build.sh: line 59: ./build.sh: Permission denied.
The command "./build.sh --quiet verify" exited with 126.
【问题讨论】:
可以显示build.sh文件的权限吗? 第 59 行是什么? 不知道,因为 /home/travis/build.sh 文件存在于 travis-ci.org 中 【参考方案1】:看起来您需要签入具有执行权限的文件build.sh
。请在您自己的机器上尝试以下操作:
git update-index --add --chmod=+x build.sh
git commit -m 'Make build.sh executable'
git push
【讨论】:
我从 2007 年开始使用 git,这是我第一次看到这个解决方案。 慢拍 普通的旧chmod +x build.sh && git add build.sh
有什么问题?
@MateenUlhaq 即使使用 git bash 也无法在 Windows 上运行。所以你必须将它添加到 git-history 中,然后调整索引以保存权限。
在运行 git commit
之前,我运行了 git status ,它显示的文件与被跟踪和未跟踪的文件相同。我提交并且很好,但是下次我git add
ed 文件时,权限丢失了。
哇。来自 Windows 世界但在 Azure 中的 Ubuntu 上构建 .NET Core 非常有用。【参考方案2】:
您可以通过将此行添加到 .travis.yml
来授予所需的权限before_install:
- chmod +x build.sh
【讨论】:
【参考方案3】:使用 bash 运行脚本
另一种选择是使用 bash 运行脚本,这样就无需修改文件的权限。
bash path/to/file.sh
或者:
sh path/to/file.sh
注意
在这种情况下,您不 执行脚本本身,您正在执行 bash
或 sh
然后 运行脚本。因此脚本不需要是可执行的。
有意义吗?
【讨论】:
是否有理由想要运行 bash 而不是脚本?是否有一种方式或另一种方式的好处? 这只是一种无需修改文件权限的有用方法。 (在我的 Mac 上,我需要 sudo 来更改文件权限。在 travis-ci 上,你不能总是使用 sudo。我需要一种方法来运行我的测试,这两者都适用。并且在本地手动更改文件权限似乎没有喜欢最好的方法...)@Josh【参考方案4】:只需在 build.sh 文件所在的路径运行
chmod +x build.sh
【讨论】:
以上是关于build.sh 文件的权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章