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
?
答案 0 :(得分:3)
警告表示/opt/gitlab/embedded/libexec
是世界可写的。这是一个安全问题,因为它是钩子显然运行的PATH环境的一部分。这意味着任何有权访问服务器的人都可以将可执行文件放入该目录,可能会使用恶意命令隐藏合法命令。如果然后在钩子中使用这些命令,则任何人都可以获得运行钩子的用户的权限。
要解决此问题,您应该使指示的libexec目录不可写:
chmod o-w /opt/gitlab/embedded/libexec
答案 1 :(得分:0)
我使用sudo chmod go-w /opt/gitlab
,sudo chmod go-w /opt/gitlab/embedded/bin
和sudo chmod go-w /opt/gitlab/embedded
我在错误中显示的路径中给出了写权限。最后,它的作品。