Không mất một chút thời gian để vượt qua các quyền của tệp Windows, bạn khó có thể nói chính xác điều gì đang xảy ra.
Rất may, tôi không cần phải biết điều đó. Cách khắc phục đơn giản để giải quyết tất cả các tai ương cho phép tệp của bạn là sử dụng noacl
tùy chọn cho tất cả các giá trị Cygwin.
Mở /etc/fstab
trong trình soạn thảo văn bản Cygwin yêu thích của bạn (hoặc, thông thường, C:\cygwin\etc\fstab
trong Windows yêu thích của bạn, miễn là nó hỗ trợ các kết thúc dòng Unix [vì vậy không phải là Notepad]). Của tôi trước đây trông như thế này:
# For a description of the file format, see the Users Guide
# http://cygwin.com/cygwin-ug-net/using.html#mount-table
# This is default anyway:
# none /cygdrive cygdrive binary,posix=0,user 0 0
Nếu dòng cuối cùng vẫn được nhận xét, hãy xóa hàng đầu #
để hệ thống sẽ chú ý đến nó. Nó có thể không được bình luận, trong trường hợp đó sẽ không có #
để xóa.
Sau đó, vào danh sách các tùy chọn (đó là binary,posix=0,user
bit), thêm ,noacl
vào cuối. Dòng liên quan trong tôi /etc/fstab
sau đó trông giống như dưới đây:
none /cygdrive cygdrive binary,posix=0,user,noacl 0 0
Sau đó đóng và mở lại tất cả các ứng dụng Cygwin của bạn (bạn có thể cần phải khởi động lại) và bạn sẽ ngừng xem bất kỳ vấn đề về quyền nào.
Lưu ý rằng nếu bạn đã làm những việc phức tạp với điểm gắn kết của mình, bạn có thể cần chỉnh sửa nhiều dòng /etc/fstab
, cũng như bất kỳ tệp nào đã tích lũy /etc/fstab.d
. Những thay đổi bạn cần thực hiện sẽ giống nhau cho tất cả những thay đổi này.
Các noacl
tùy chọn sẽ cho kết quả trong Cygwin hoàn toàn phớt lờ tất cả các danh sách kiểm soát truy cập NTFS. Nó vẫn sẽ xem xét thuộc tính chỉ đọc của DOS, nhưng nó không bị ràng buộc với bất kỳ người dùng nào. Điều này có nghĩa là nó sẽ không thể biết liệu một tập tin có thể thực thi được hay không dựa trên quyền; thay vào đó, nó giả sử bất kỳ tập tin nào kết thúc .bat
, .com
hoặc .exe
có thể thực thi được, cũng như bất kỳ tập tin nào bắt đầu bằng #!
.
Đọc thêm, nếu bạn quan tâm, từ Hướng dẫn sử dụng của Cygwin:
git --exec-path
không?