Usando a versão mais recente do cygwin64 no Windows 10. Consegui obter um diretório foo
que tem algo estranho sobre suas permissões. Não sei bem como isso aconteceu, mas aqui estão os sintomas:
$ 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
Isso não acontece para outros diretórios, por exemplo, /f/temp/ok
. Usando ls
interruptores, não vejo diferença entre f/temp/ok
e /f/temp/foo
.
Se eu fizer chmod 775 bar
, posso entrarbar
, mas criar um diretório em bar
tem o mesmo problema. Portanto, este problema está parando me fazendo git init
em /f/temp/foo
. Fazer chown -R Mm *
com os pais não faz diferença.
Minha pergunta é: O que está causando esse problema e qual é a correção adequada?
Existem algumas diferenças visíveis com icacls
mas não sei como interpretá-las:
$ 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)
Eu tenho uma solução alternativa no momento: coloque outro diretório em /f/temp
e use cp -r
para copiar todos os arquivos para foo
o novo diretório, exclua foo
e renomeie o novo diretório. Se eu usar em cp -a
vez do cp -r
problema persistir.
fonte
setfacl -b foo
Respostas:
O excesso de DENY mostrado pelos icacls pode ser causado pelas alterações recentes na dll cygwin (entre 2,3 e 2,5 atuais). Demorou um pouco para estar certo e poderia ter deixado arquivos ou diretório com a intrigante ACL.
Para higienizar as ACLs, um
-b
switch foi adicionado ao setfaclPara referência https://cygwin.com/cygwin-ug-net/ov-new.html#ov-new2.4s
fonte