MSYS如何定义文件权限?

问题描述:

我对MSYS中的文件权限感到超级困惑。在我的公司将我的Windows用户转移到另一个域后,情况开始出现问题。现在我有这个具体问题:MSYS如何定义文件权限?

我想编译cpputest。我解压缩它使用的是Windows,开始了一个MSYS控制台,所有者和组是这样的:

[email protected] ~/Projects/cpputest-3.8 
$ ls -la 
total 1956 
drwxrwx---+ 1 M.Grunwald Domain Users    0 16. Nov 10:21 . 
drwxrwx---+ 1 M.Grunwald COMPANY_DE+Domain Users 0 16. Nov 10:21 .. 
-rwxrwx---+ 1 M.Grunwald Domain Users   11030 2. Mai 2016 .cproject 
-rwxrwx---+ 1 M.Grunwald Domain Users    228 2. Mai 2016 .gitattributes 
-rwxrwx---+ 1 M.Grunwald Domain Users    746 25. Mai 12:32 .gitignore 

and so on. 

当我开始autogen.sh,出现这种情况:

$ ./autogen.sh 
autom4te-2.69: cannot open autom4te.cache/requests: Permission denied 

$ ls -lad autom4te.cache/ 
drwxr-xr-x+ 1 M.Grunwald Domain Users 0 Nov 16 10:23 autom4te.cache/ 

所以该目录是属于我的,我拥有所有权限,但我不能在这上面碰任何东西:

$ touch autom4te.cache/requests 
touch: cannot touch 'autom4te.cache/requests': Permission denied 

看来,“我”是不是真的M.Grunwald,不属于“域用户”,既不...另一方面:

$ echo "UID: $UID GID: $GROUPS" 
UID: 1117609 GID: 1049089 

$ ls -lnad autom4te.cache/ 
drwxr-xr-x+ 1 1117609 1049089 0 Nov 16 10:23 autom4te.cache/ 

所以ID匹配。 umask也是0000,并且组和其他人也没有写入权限。如果我想改变这一点:

$ chmod g+w autom4te.cache 
chmod: changing permissions of 'autom4te.cache': Permission denied 

现在我完全糊涂了,并阻止许多相似的任务(总权限问题,cpputest只是一个例子)。你可以帮我吗?

这个问题在我重新运行mingw安装程序后解决了。