错误的文件权限在
问题描述:
我已经创建了如下的git钩来更新我的web应用程序时,新的变化都推到仓库错误的文件权限在
#!/bin/sh
#Update the server version to HEAD
echo "Updating webapp..."
unset $(git rev-parse --local-env-vars)
(cd /var/www/webapp && git pull -q)
不过,如果我添加新的文件,他们得到了一个钩子使用Git拉时错误的权限。它们只能由所有者读取,而不能由组或其他用户读取。但我需要它们让每个人都可读。在本地他们有正确的许可位。即使我从shell手动运行钩子,它也能正常工作。只有当脚本被称为钩子时它才起作用。
任何想法如何解决这个问题?
PS:我使用Git 1.7
答
Git不会存储权限,除了可执行位。因此,在结帐时,文件是使用默认权限创建的,这取决于您的umask。
我想,当你手动调用钩子时,你有一个更*的umask集合。您可以用umask
shell命令覆盖umask。为了您的目的,0022可能很好。
在git pull完美运行之前,在shell脚本中设置'umask 0022'。谢谢! – joachim 2012-02-22 13:02:35
谢谢!完美工作。 – nathancahill 2012-06-11 08:16:49