我在本地机器上编写代码。我将代码推送到 Bitbucket 中的 Mercurial 存储库。然后,我登录到客户端的网络服务器并从 Bitbucket 存储库“拉取/更新”到服务器。
问题是他们的帐户在共享服务器上,运行 suphp,并且安全设置只允许 suphp 提供 chmod'ed 644 (-rw-r--r--) 的文件。但是每次我从 Bitbucket 存储库中提取文件时,文件权限都会更改为 664 (-rw-rw-r--)。
这不是权限太严格的问题,因为其他人已经尝试同步 Hg repos。这也不是 Mercurial 不复制文件权限的问题。 (Hg 过去只复制执行位,但现在复制所有权限。)
我怀疑我可以通过某种方式更改我的 Windows 机器上的权限,使其更具限制性,这可能会修复它,但我不确定 Windows 权限如何转化为 Linux“所有者/组/世界”设置。 (我的 Windows 机器上的文件允许“完全控制”我的帐户、“管理员”组和“系统”,它们从包含文件夹(在我的文档中)继承的所有权限。)
有没有人能解决这个问题?我可以在 Linux 机器上做一个更新后 Hook 到 chmod 644 find 。 -类型 f?
请您参考如下方法:
在您的登录配置文件中设置 umask,例如~/.bash_profile
umask 033
man umask 获取详细信息。




