M.M*_*M.M 10 cygwin permissions icacls
在 Windows 10 中使用最新版本的 cygwin64。我设法得到一个目录foo,它的权限有些奇怪。我不太确定这是怎么发生的,但这里是症状:
$ cd /f/temp/foo
$ ls -lad .
drwxrwx---+ 1 Mm None 0 Jun 16 14:03 .
$ mkdir bar
$ ls -lad bar
d---rwx---+ 1 Mm None 0 Jun 16 14:17 .
$ cd bar
Permission denied
$ umask
0022
Run Code Online (Sandbox Code Playgroud)
这不会发生在其他目录中,例如/f/temp/ok. 使用ls开关我看不出f/temp/ok和之间有任何区别/f/temp/foo。
如果我这样做,chmod 775 bar那么我可以输入bar,但是在下面创建目录bar也有同样的问题。所以这个问题阻止了我git init在/f/temp/foo. 做chown -R Mm *父没什么区别。
我的问题是:是什么导致了这个问题,正确的解决方法是什么?
有一些可见的差异,icacls但我不确定如何解释它们:
$ cd /f/temp
$ icacls ok >ok.txt
$ icacls foo >foo.txt
$ diff -b ok.txt foo.txt
1c1
< ok NULL SID:(DENY)(Rc,S,REA,WEA,X,DC)
---
> foo NULL SID:(DENY)(Rc,S,REA,WEA,X,DC)
3c3
< DESKTOP-AO2AIEC\None:(RX)
---
> DESKTOP-AO2AIEC\None:(Rc,S,RA)
8c8
< Everyone:(RX)
---
> Everyone:(Rc,S,RA)
10,11c10,12
< CREATOR OWNER:(OI)(CI)(IO)(F)
< CREATOR GROUP:(OI)(CI)(IO)(RX)
---
> CREATOR OWNER:(OI)(CI)(IO)(DENY)(S,RD,WD,AD,REA,WEA,X,DC)
> CREATOR OWNER:(OI)(CI)(IO)(D,Rc,WDAC,WO,RA,WA)
> CREATOR GROUP:(OI)(CI)(IO)(Rc,S,RA)
16c17
< Everyone:(OI)(CI)(IO)(RX)
---
> Everyone:(OI)(CI)(IO)(Rc,S,RA)
Run Code Online (Sandbox Code Playgroud)
我现在有一个解决方法:在 下创建另一个目录/f/temp,然后使用cp -r将所有文件复制foo到新目录中,然后删除foo并重命名新目录。如果我使用cp -a而不是cp -r问题仍然存在。
mat*_*eri 10
icacls 显示的 DENY 过多可能是由于 cygwin dll(在 2.3 和当前的 2.5 之间)最近的变化造成的。花了一些时间才正确,可能会留下带有令人费解的 ACL 的文件或目录。
为了清理 ACL,-b在 setfacl 中添加了一个开关
setfacl -b foo
Run Code Online (Sandbox Code Playgroud)
供参考https://cygwin.com/cygwin-ug-net/ov-new.html#ov-new2.4s
| 归档时间: |
|
| 查看次数: |
6111 次 |
| 最近记录: |