Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 为什么git使用错误的权限创建文件?_Linux_Git_Jenkins - Fatal编程技术网

Linux 为什么git使用错误的权限创建文件?

Linux 为什么git使用错误的权限创建文件?,linux,git,jenkins,Linux,Git,Jenkins,我希望有人能帮上忙: 我有一个用户:jenkins用户,具有umask 0002,因此文件是用664创建的,如图所示 touch 1.txt -rw-rw-r--. 1 jenkins-user admin 0 Oct 14 12:04 1.txt 但是,当jenkins用户[从jenkins内部]运行并执行 git pull 作为构建的一部分,创建的文件具有不同的权限644[如图所示] -rw-r--r-- 1 jenkins-user admin 318 Oct 14

我希望有人能帮上忙:

我有一个用户:jenkins用户,具有umask 0002,因此文件是用664创建的,如图所示

touch 1.txt
-rw-rw-r--.  1 jenkins-user admin      0 Oct 14 12:04 1.txt
但是,当jenkins用户[从jenkins内部]运行并执行

git pull
作为构建的一部分,创建的文件具有不同的权限644[如图所示]

-rw-r--r--  1 jenkins-user admin   318 Oct 14  12:18 2.txt
构建日志还表明。。。创建模式100644

我知道git不会干扰设置权限,只知道文件是否可执行,所以我不确定预期的权限有什么问题,更重要的是,如何纠正这一问题。感谢您在这方面的帮助。

Set

git config core.sharedRepository 0660

在服务器端repo。请参阅。

您的umask是如何配置的?在shell的启动配置中?如果是这样的话,詹金斯不会知道,因为它不会启动一个交互式shell。您可以尝试从shell(作为jenkins用户)运行git,看看它是否会遵守umask。@爱德华·汤姆森:谢谢,umask设置在服务器上,但我会尝试您的建议,看看会发生什么谢谢您的回答;虽然我还没有尝试,但我确实读到了“…如果没有指定,Git将使用umask报告的权限”-因此,我想知道您是否对为什么在本例中使用git有一些想法。似乎忽略了现有的umask似乎
git init
git pull
使用不同的umask,可能是因为
git init
是在命令行中发出的,而
git pull
是在不阅读bash的情况下执行的这个假设听起来像是问题的逻辑原因,尽管我不知道会发生这种情况。git init确实在命令上,而git pull没有。如果是这种情况,您会推荐相同的解决方案还是建议其他解决方案?感谢您对此的帮助。可以在Jenkins中配置Hups
umask
。或者在运行git pull之前的某个地方使用source
~/.bashrc
。类似于
source~/.bashrc&&git-pull
。甚至
umask 002&&git pull