Используя последнюю версию cygwin64 в Windows 10. Мне удалось получить каталог, в 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
этого проблема сохраняется.
источник
setfacl -b foo
Ответы:
Избыток DENY, показанный icacls, может быть вызван недавними изменениями в cygwin dll (между 2.3 и 2.5). Это заняло несколько раундов, чтобы быть правым и могло оставить файлы или каталог с загадочным ACL.
Для очистки ACL
-b
был добавлен переключатель в setfaclДля справки https://cygwin.com/cygwin-ug-net/ov-new.html#ov-new2.4s
источник