Linux 通过git部署,但将/var/www权限保留在username:www数据而不是root:root

Linux 通过git部署,但将/var/www权限保留在username:www数据而不是root:root,linux,git,apache,ubuntu,Linux,Git,Apache,Ubuntu,是否可以通过git部署到服务器,但将DocumentRoot权限保留在用户名:www data?我如何让git成为另一个用户的根用户并保留文件的www数据组 现在,在任何推送之后,我都会将文件更改为root:root,每次我都必须登录到remote并手动更改权限 Git不会更改文件权限或所有权。它只是不存储权限。权限将更改为用户拥有的任何权限。就像任何文件创建一样 Git支持两个权限集:可执行位打开和可执行位关闭。没有别的了。所有权信息根本不存储 如果需要特定权限,则需要手动执行 作为另一种解决

是否可以通过git部署到服务器,但将DocumentRoot权限保留在用户名:www data?我如何让git成为另一个用户的根用户并保留文件的www数据组


现在,在任何推送之后,我都会将文件更改为root:root,每次我都必须登录到remote并手动更改权限

Git不会更改文件权限或所有权。它只是不存储权限。权限将更改为用户拥有的任何权限。就像任何文件创建一样

Git支持两个权限集:可执行位打开和可执行位关闭。没有别的了。所有权信息根本不存储

如果需要特定权限,则需要手动执行


作为另一种解决方法,您可以使用git钩子,也可以使用单独的工具来完成这项工作

我只需将git存储库的所有权(user1:user1)更改为与虚拟主机配置中定义为DocumentRoot的目录的所有权相同

此外,我还必须启用libapache2 mpm-itk(因为我想将机器上的所有站点彼此分离):


正在尝试搜索堆栈溢出,如。解决方案不是使用git,而是在文件系统上设置权限。或者,您可以将文件服务器上的repo克隆为www数据用户,而不是根用户