git push --receive-pack
选项可以灵活地在git-receive-pack
中运行$PATH
。
但它也是一个安全漏洞,因为它也可以运行任何其他命令。
如何通过指定--receive-pack
?
同样,我如何避免来自git pull --upload-pack
?
答案 0 :(得分:3)
通过https或ssh,您可以在git请求(推/拉)和git本身之间添加 gitolite 等授权层。
对于ssh,它将使用ssh forced-command mechanism拦截所有命令,拒绝非git命令。
其gitolite-shell
will parse the command,并提取回购名称,调用git-upload-pack|git-receive-pack
而不考虑git-receive-pack程序的路径。