CentOS 7,Git 2.16.2
建立网站,将其称为" godaddy.com"
创建用户godaddy
mkdir / home / godaddy / httpdocs
git init
git config receive.denyCurrentBranch updateInstead
在我的本地Windows PC中,使用私钥成功添加此远程源。 但我发现,如果用户" godaddy"使用sftp,他可以访问上层目录,比如/ etc / httpd,/ etc / init.d ......
我认为用户应该限制在他的主目录中。
使用selinux?如果不使用selinux,其他方式? 使用http git?
答案 0 :(得分:0)
这是您的SSH或用户权限设置的属性,与Git本身没什么关系。
解决此问题而不摆弄用户权限的一种方法是更改此用户通过SSH访问服务器时调用的命令。默认情况下,用户具有正常的shell访问权限(即生成常规shell)。您可以通过指定自定义shell命令来更改此设置。您可以在authorized_keys
文件中进行设置,通常位于$HOME/.ssh/authorized_keys
。
git-shell是一个有限的shell,您可以将其用于此目的。
如果您想要更精细的控制,请考虑Gitolite。如果这太麻烦了,可以考虑使用GitHub这样的服务。
另请注意,您不希望推送到非裸存储库(即具有工作树的存储库)。如果您需要设置部署过程,请至少使用三角形设置,从本地计算机推送到某个裸存储库,然后从中获取要部署的内容。对于一个简单的用例,这很容易编写脚本。还有Travis CI这样的服务可以做类似的事情。