Cygwin mkdir निर्देशिका बनाता है जिसकी मुझे अनुमति नहीं है


10

विंडोज 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 जो काम करने के लिए लग रहा था - यदि आप एक स्पष्टीकरण के साथ एक उत्तर लिख सकते हैं तो मैं वोट करूँगा और स्वीकार करूँगा
MM

जवाबों:


10

आइकॉल्स द्वारा दिखाए गए DENY की अधिकता साइबरविन डीएलई (2.3 और वर्तमान 2.5 के बीच) में हालिया परिवर्तनों के कारण हो सकती है। यह सही होने के लिए कुछ दौर लेता था और एसीएल के साथ puzzling फ़ाइलों या निर्देशिका को छोड़ सकता था।

ACLs -bको पवित्रा करने के लिए , एक स्विच को setfacl में जोड़ा गया था

setfacl -b foo

संदर्भ के लिए https://cygwin.com/cygwin-ug-net/ov-new.html#ov-new2.4s


1
समस्या तब उत्पन्न हुई जब मैंने कुछ फाइलें जो किसी के द्वारा बनाई गई थीं, उन्हें अलग-अलग संस्करण के साथ बनाया, ताकि स्पष्टीकरण समझ में आ जाए
MM
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.