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/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)
_
今のところ回避策があります。_/f/temp
_の下に別のディレクトリを作成し、_cp -r
_を使用してすべてのファイルをfoo
から新しいディレクトリにコピーし、foo
を削除して、新しいディレクトリの名前を変更します。 _cp -a
_の代わりに_cp -r
_を使用すると、問題が解決しません。
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