Cygwin mkdir 創造我沒有權限存取的目錄

Cygwin mkdir 創造我沒有權限存取的目錄

在 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

對於其他目錄,例如 ,不會發生這種情況/f/temp/ok。使用ls開關我看不出f/temp/ok和之間有任何區別/f/temp/foo

如果我這樣做,chmod 775 bar那麼我可以輸入bar,但是在下面建立目錄bar也會出現相同的問題。所以這個問題阻止了我的git init工作/f/temp/foochown -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)

我現在有一個解決方法:在 下建立另一個目錄/f/temp,然後使用cp -r將所有檔案複製到foo新目錄中,然後刪除foo並重新命名新目錄。如果我使用cp -a而不是cp -r問題仍然存在。

答案1

icacls 顯示的 DENY 過多可能是由於 cygwin dll 最近的更改(2.3 和當前 2.5 之間)造成的。花了一些時間才正確,並且可能會留下帶有令人費解的 ACL 的檔案或目錄。

為了清理 ACL,-b在 setfacl 中加入了一個開關

setfacl -b foo

以供參考https://cygwin.com/cygwin-ug-net/ov-new.html#ov-new2.4s

相關內容