【问题标题】:Setting umask in Git / Gitolite在 Git / Gitolite 中设置 umask
【发布时间】:2011-10-28 12:24:25
【问题描述】:

我已经设置了 Git 和 Gitolite,在某个时候我记得在其中一个配置文件中看到了“umask”设置。这是否设置了我使用 Git 同步的所有文件的权限?这正是我所需要的。我在哪里可以找到它?

【问题讨论】:

    标签: git permissions gitolite umask


    【解决方案1】:

    umask settings in Gitolite 用于更改新创建的存储库的 umask(而不是关于这些存储库在版本中管理的文件)。
    gitolite.rc doc:

    $REPO_UMASK,八进制,默认 0077

    gitolite 使用的默认UMASK 使所有repos 及其内容具有rwx------ 权限。想跑 gitweb 的人都知道这样不行。

    处理这个问题的正确方法是给这个变量一个像0027这样的值(注意语法:需要前导0),然后让用户运行webserver(apache,www-data,随便) 'git' 组的成员。

    如果您已经安装了 gitolite,则必须手动修复现有文件(对于 umask 或 0027,应为 chmod -R g+rX)。这是因为umask 只影响新创建文件的权限,而不影响现有文件的权限。

    此设置类似于直接创建 git repo(不带 gitolite)时的使用:

    core.sharedRepository
    

    group(或true)时,存储库可在组中的多个用户之间共享(确保所有文件和对象都是组可写的)。
    all(或worldeverybody)时,所有用户都可以读取存储库,除了group-shareable
    umask(或false)时,git会使用umask上报的权限。

    另请参阅“How do I share a Git repository with multiple users on a machine?”了解更多信息。

    当您在平台之间发生权限冲突时,您还可以选择“instruct git to ignore file permissions changes”(git config core.fileMode false)。

    更新:此答案涵盖 gitolite 2。使用 gitolite 3,设置从 $REPO_UMASK 更改为 $UMASK

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-06
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      相关资源
      最近更新 更多