Cygwin mkdir이 권한이 없는 디렉토리를 만듭니다.

Cygwin mkdir이 권한이 없는 디렉토리를 만듭니다.

fooWindows 10에서 최신 버전의 cygwin64를 사용합니다. 권한에 이상한 점이 있는 디렉터리를 얻었습니다 . 어떻게 이런 일이 발생했는지는 잘 모르겠지만 증상은 다음과 같습니다.

$ 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문제가 지속됩니다.

답변1

icacls에 의해 표시된 DENY의 초과는 cygwin dll(2.3과 현재 2.5 사이)의 최근 변경으로 인해 발생할 수 있습니다. 올바른 결과를 얻으려면 약간의 시간이 걸렸으며 수수께끼의 ACL이 있는 파일이나 디렉터리가 남아 있을 수 있습니다.

ACL을 삭제하기 위해 -bsetfacl에 스위치가 추가되었습니다.

setfacl -b foo

참고로https://cygwin.com/cygwin-ug-net/ov-new.html#ov-new2.4s

관련 정보