作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 UBUNTU 上的 rails 工作
IM 触发了一个初始化程序,它将一个 githook 文件写入 git 目录,一切都很好,文件被创建的代码很好,但是在提交触发器上我得到了
hint: The '.git/hooks/commit-msg' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
该文件是使用可执行权限创建的....我认为?
new_file = File.new(file, File::CREAT|File::TRUNC|File::RDWR, 777)
但是,我认为我做错了什么或错过了许可步骤?
最佳答案
您的 Ruby 代码中有错字。通常,Unix 文件模式以八进制指定,这是人们在编程中实际使用八进制的最后一种情况。但是,您在此处指定了一个十进制值。
因此,您指定的八进制模式是 1411
,这使您的文件对用户没有可执行权限,对组或其他人没有读取权限,并且设置了粘性位,这可能不是您想要的。
您可以通过将模式编写为 0777
来解决此问题。 :
new_file = File.new(file, File::CREAT|File::TRUNC|File::RDWR, 0777)
另请注意,使用模式 777 写入文件通常是一个安全问题,因为系统上的任何用户都可以修改它们。这意味着任何可以访问编写此 Hook 的目录的用户都可以在运行 Hook 时修改它以执行任意代码(看起来像是在运行
git commit
时)。更合适的模式可能是 755,它可以防止用户以外的各方对其进行修改。
commit-msg
的文档钩子(Hook)在
githooks
手册页。根据文档:
It takes a single parameter, the name of the file that holds the proposed commit log message. Exiting with a non-zero status causes the command to abort.
关于ruby-on-rails - 创建成为可执行 chmod 777 gihook 文件的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66404361/
我在 UBUNTU 上的 rails 工作 IM 触发了一个初始化程序,它将一个 githook 文件写入 git 目录,一切都很好,文件被创建的代码很好,但是在提交触发器上我得到了 hint: Th
我是一名优秀的程序员,十分优秀!