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 foo
có 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 ls
công tắc tôi không thể thấy bất kỳ sự khác biệt giữa f/temp/ok
và /f/temp/foo
.
Nếu tôi làm chmod 775 bar
thì tôi có thể nhập bar
, nhưng sau đó tạo một thư mục bên dưới bar
có 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 init
trong /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 icacls
như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 foo
thư mục mới, sau đó xóa foo
và đổi tên thư mục mới. Nếu tôi sử dụng cp -a
thay vì cp -r
vấn đề vẫn tồn tại.
setfacl -b foo