【问题标题】:Git not honouring umaskGit不尊重umask
【发布时间】:2019-01-11 21:47:18
【问题描述】:

我将 umask 设置为 0002,并将项目的所有目录设置为 chmod g+rws,并将文件设置为 chmod 664

因此,当我手动创建一个新目录时:

$ mkdir foo
$ ls -ld foo
drwxrwsr-x 2 william www-data 4096 Jan 11 21:20 foo

当我手动创建文件时:

$ touch foo/bar
$ ls -lh foo/bar 
-rw-rw-r-- 1 william www-data 0 Jan 11 21:21 foo/bar

以上都符合预期(我希望 www-data 组中的其他人能够修改它们)。

但是:

每当我使用 composer install 检出多个 git 存储库并创建新文件和目录时,我都会获得奇怪的权限:

drwxr-sr-x 2 william www-data 4.0K Dec 26 12:24 foo
-rwxr-xr-x 1 william www-data 3103 Dec 26 03:53 foo/bar

(两者都应该是组可写的,并且文件被赋予了他们不应该拥有的可执行权限)。

另外,git config core.fileMode 在部署服务器上设置为false(我猜这仅涵盖可执行位,不包括读写)。

有什么建议吗?

在这种情况下,我使用 composer 来部署 WordPress - wpackagist - 存储库,如果源存储库有任何相关性。

(Debian Jessie,bash shell)

【问题讨论】:

    标签: git permissions composer-php


    【解决方案1】:

    默认情况下,Git 尊重用户设置的 umask。可能是其他东西,例如另一个程序或部署期间的 shell 配置,被设置为不同的值,这导致了差异。

    然而,让 Git 使用特定模式签出文件的最简单方法是设置 core.sharedRepository,在本例中设置为 0664。然后 Git 将始终使用这些权限写入文件,而不管用于调用它的 umask。

    【讨论】:

      猜你喜欢
      • 2012-05-25
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 2019-06-18
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      相关资源
      最近更新 更多