预接收挂钩文件在执行挂钩时显示不需要的消息
Pre-receive hook file displaying unwanted message while executing the hook
GitLab 版本 - 9.3.6
最近我添加了 pre-receive
钩子来阻止二进制文件推送。我可以在我的 gitlab 测试服务器机器上得到预期的结果(下图)
Testing Server side displaying message
我在实时服务器机器上添加了相同的挂钩文件。但是我在显示消息时又多了一行(下面)。
Live server side displaying message
实际上,我的钩子工作正常。但是消息中显示了额外的一行。我确定,我的钩子文件上没有额外的打印语句。
我的提交信息是
remote: hooks/pre-receive:3: warning: Insecure world writable dir /opt/gitlab/embedded/libexec in PATH, mode 040777
remote: Hello there! We have restricted the binary files (.exe, .dll, .zip, .7z, .deb, .cab, .gz, .pkg, .iso) that are pushed into GitLab.
remote: Your changes contain following file(s) from origin commit c7a151fb to a4e7c31c. Kindly remove the following file(s) and try again.
remote: NewTest.dll
如何从该消息行中删除行 hooks/pre-receive:3: warning: Insecure world writable dir /opt/gitlab/embedded/libexec in PATH, mode 040777
?
警告表明 /opt/gitlab/embedded/libexec
是全局可写的。这是一个安全问题,因为它是挂钩显然运行的 PATH 环境的一部分。这意味着任何有权访问服务器的人都可以将可执行文件放入该目录,可能会用恶意命令隐藏合法命令。如果随后在挂钩中使用这些命令,任何人都可以获得挂钩用户 运行 的特权。
要解决此问题,您应该使指定的 libexec 目录不可全局写入:
chmod o-w /opt/gitlab/embedded/libexec
我通过使用 sudo chmod go-w /opt/gitlab
、sudo chmod go-w /opt/gitlab/embedded/bin
和 sudo chmod go-w /opt/gitlab/embedded
解决了这个问题
我在错误中显示的路径中赋予了写入权限。终于,它的作品。
GitLab 版本 - 9.3.6
最近我添加了 pre-receive
钩子来阻止二进制文件推送。我可以在我的 gitlab 测试服务器机器上得到预期的结果(下图)
Testing Server side displaying message
我在实时服务器机器上添加了相同的挂钩文件。但是我在显示消息时又多了一行(下面)。
Live server side displaying message
实际上,我的钩子工作正常。但是消息中显示了额外的一行。我确定,我的钩子文件上没有额外的打印语句。
我的提交信息是
remote: hooks/pre-receive:3: warning: Insecure world writable dir /opt/gitlab/embedded/libexec in PATH, mode 040777
remote: Hello there! We have restricted the binary files (.exe, .dll, .zip, .7z, .deb, .cab, .gz, .pkg, .iso) that are pushed into GitLab.
remote: Your changes contain following file(s) from origin commit c7a151fb to a4e7c31c. Kindly remove the following file(s) and try again.
remote: NewTest.dll
如何从该消息行中删除行 hooks/pre-receive:3: warning: Insecure world writable dir /opt/gitlab/embedded/libexec in PATH, mode 040777
?
警告表明 /opt/gitlab/embedded/libexec
是全局可写的。这是一个安全问题,因为它是挂钩显然运行的 PATH 环境的一部分。这意味着任何有权访问服务器的人都可以将可执行文件放入该目录,可能会用恶意命令隐藏合法命令。如果随后在挂钩中使用这些命令,任何人都可以获得挂钩用户 运行 的特权。
要解决此问题,您应该使指定的 libexec 目录不可全局写入:
chmod o-w /opt/gitlab/embedded/libexec
我通过使用 sudo chmod go-w /opt/gitlab
、sudo chmod go-w /opt/gitlab/embedded/bin
和 sudo chmod go-w /opt/gitlab/embedded
我在错误中显示的路径中赋予了写入权限。终于,它的作品。