การใช้ 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