【问题标题】:How do I force Git to use the owner and permissions of the enclosing folder?如何强制 Git 使用封闭文件夹的所有者和权限?
【发布时间】:2012-03-14 01:58:22
【问题描述】:

我注意到,当我将更改拉到我的服务器时,它会自动为更改的文件添加组写入访问权限。但是,由于我使用的 suPHP 会导致 500 错误,因此我需要忽略 Git 存储库可能拥有的任何权限和所有权,并将其替换为文件夹本身具有的适当权限。

编辑:suphp 要求文件的最大权限为 644,目录的最大权限为 755,以帮助保护用户的文件不被修改。这是一个适用于 Suhosin 的 PHP 补丁。

我在 localhost 环境中工作,推送到 staging 时出现错误,因为 staging 是生产环境的克隆。

【问题讨论】:

  • 我不太明白你想要什么,因为我对 suPHP 一无所知,但你可以在推送到 repo 后使用git hooks 设置所需的权限。
  • suphp 是一个 php 补丁,要求用户有 644 个文件(或更少)和 755 个目录。它使其他组和用户无法访问和修改您的文件。我不记得它还有什么作用,但是当我不得不运行命令来修复权限时,它往往会很痛苦。
  • 除非您直接在生产环境中签出和编辑,否则您不会这样做吗?为什么在开发机器上使用suphp,它旨在帮助保护生产部署?
  • 不,我在开发环境中编辑,然后在暂存环境中编辑,我使用 git 推送到服务器,但是这会导致权限问题。

标签: macos git centos suphp


【解决方案1】:

我认为 git 荣誉 umask。因此,在使用任何git 命令之前,只需将其设置为0022 或更严格,就可以了。

$ umask 0022
$ git checkout master

【讨论】:

    【解决方案2】:

    我最终使用了合并后挂钩并在 bash 脚本中运行了 chmod -R g-w .。这有助于确保它不会添加任何其他会导致服务器出现 500 错误的写入文件。

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      • 2018-09-01
      • 2011-05-15
      相关资源
      最近更新 更多