Cygwin mkdir สร้างไดเรกทอรีที่ฉันไม่มีสิทธิ์


8

การใช้ 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 ที่ดูเหมือนว่าจะทำงาน - หากคุณสามารถเขียนคำตอบพร้อมคำอธิบายที่ฉันจะลงคะแนนและยอมรับ
M.M

คำตอบ:


7

ส่วนเกินของ DENY ที่แสดงโดย icacls อาจเกิดจากการเปลี่ยนแปลงล่าสุดใน cygwin dll (ระหว่าง 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 รุ่นอื่นดังนั้นคำอธิบายจึงเหมาะสม
M.M
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.