Cygwin mkdir робить каталог, на який я не маю дозволів


10

Використовуючи останню версію 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проблеми, проблема не зникає.


1
спробуйтеsetfacl -b foo
matzeri

@matzeri, здавалося, працює - якщо ви зможете написати відповідь із поясненням, я проголосую та прийму
ММ

Відповіді:


10

Перевищення DENY, показане на icacls, може бути спричинене нещодавніми змінами у dll cygwin (між 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, так що це пояснення має сенс
ММ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.