Cygwin mkdirは、権限のないディレクトリを作成します


10

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/oklsスイッチを使用すると、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問題が解決しません。


1
試してみるsetfacl -b foo
matzeri 2016年

機能しているように見えた@matzeri-説明付きの回答を書き込めれば、投票して受け入れます
MM

回答:


10

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


1
この問題は、cygwinの異なるバージョンを使用して作成されたファイルを解凍したときに発生したため、説明は理にかなっています
MM
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.