【发布时间】:2014-01-24 09:12:17
【问题描述】:
我使用的代码库从 Git 存储库中检出到我的 Linux 机器上。由于我们的生产代码是为部署在 Linux 上而编写的,所以我在我的 Linux 机器上进行了所有测试,但我喜欢在日常使用中使用 Windows,包括代码编辑/创作。
为此,我创建了一个 Samba 共享,用于我签出代码的文件夹(我的主文件夹),如下所示:
[wgrover]
path = /home/wgrover
available = yes
valid users = wgrover
read only = no
browsable = yes
public = yes
writable = yes
但是,当我在 Windows 中编辑来自 samba 共享 \\linux-box\wgrover 的文件时,Linux 中的文件权限不断更改为 755,即使在编辑之前它是 644。
这不断出现在我的git diff 中,如下所示:
diff --git a/debian/maggie.nginx.conf b/debian/maggie.nginx.conf
old mode 100644
new mode 100755
index 7cda506..7eab574
可以在 smb.conf 中设置create mask,但这也不会“保留”原始文件权限。我可以通过在.gitconfig 中设置fileMode = false 来忽略git 中的文件模式更改,但这也忽略了这个问题。
有没有办法在从 linux 修改文件时保留文件权限?
【问题讨论】:
-
我的 /etc/login.defs 说
UMASK 022,这有关系吗? -
@ElliottFrisch 我尝试使用 umask 值,但没有成功。你对你看到的任何文件有任何参考吗?
-
@ElliottFrisch 我知道 umask。我想知道您为什么认为 umask 会创建 samba 文件,以及是否有您所指的任何文档。
-
Yes。我找到了几张documentation。
-
@ElliottFrisch 这些都是关于 umask 影响 samba 文件创建的用户问题。据我了解,它没有。这就是 Samba 中有
create mask和directory mask设置的原因。如果您有空闲时间,请在此处阅读 Creation Masks 部分:samba.org/samba/docs/using_samba/ch08.html - 它解释了为什么 umask 不影响 samba。