Sử dụng phiên bản mới nhất của cygwin64 trong Windows 10. Tôi đã quản lý để có được một thư mục foocó cái gì đó lạ về quyền của nó. Tôi không chắc chắn điều này xảy ra như thế nào nhưng đây là các triệu chứng:
$ 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
Điều này không xảy ra đối với các thư mục khác, ví dụ /f/temp/ok. Sử dụng các lscông tắc tôi không thể thấy bất kỳ sự khác biệt giữa f/temp/okvà /f/temp/foo.
Nếu tôi làm chmod 775 barthì tôi có thể nhập bar, nhưng sau đó tạo một thư mục bên dưới barcó cùng một vấn đề. Vì vậy, vấn đề này đang khiến tôi dừng lại làm git inittrong /f/temp/foo. Làm chown -R Mm *trong cha mẹ không làm cho sự khác biệt.
Câu hỏi của tôi là: Điều gì gây ra vấn đề này và cách khắc phục thích hợp là gì?
Có một số khác biệt có thể nhìn thấy icaclsnhưng tôi không chắc cách giải thích chúng:
$ 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)
Bây giờ tôi đã có một cách giải quyết: tạo một thư mục khác bên dưới /f/temp, sau đó sử dụng cp -rđể sao chép tất cả các tệp ra khỏi foothư mục mới, sau đó xóa foovà đổi tên thư mục mới. Nếu tôi sử dụng cp -athay vì cp -rvấn đề vẫn tồn tại.
setfacl -b foo