Windows

無法在 Windows 上打開用 Cygwin 修改的文件,ls -l 輸出中的線索

  • June 15, 2012

我無法再打開下面輸出中指示的 tabs.html 和 tabs.js 文件(四個文件中的第 2 個和第 3 個)。使用 cygwin 我為它們應用了一個更新檔。

我相信線索在 ls -l 輸出中。具體來說,與其他文件不同,如果這是 *nix 而不是 Windows/Cygwin,則通常是權限資訊的末尾。

在第一個欄位中,我可以打開的文件有一系列以加號結尾的破折號:’———-+’ 但我無法再打開的文件沒有終止 ‘+ ‘。’+’ 表示什麼以及如何修改權限以使其恢復,請記住這是使用 Cygwin(在 Windows 7 上),如果這會有所不同。

提前致謝:

----------+ 1 George None  144 Jun 14 17:10 tabs.css
----------  1 George None 3165 Jun 15 06:26 tabs.html
----------  1 George None 4084 Jun 15 06:26 tabs.js
----------+ 1 George None  252 Jun 14 17:10 tabs-adv.css

加號表示文件具有不映射到 POSIX 權限的替代訪問控制方法集。即Windows ACL 或類似的東西。您需要檢查帶有 + 號的文件以找出可能在 Cygwin 之外的文件。這些文件很可能是由不支持 Cygwin 的二進製文件創建或修改的。

您還可以使用getfacl, setfacl, cacls,xcacls查看或設置非 POSIX 映射權限。

另一種選擇是添加 POSIX 權限,以便您的 Cygwin 使用者可以訪問它們,儘管我不確定他們將如何與其他權限互動,但您可以嘗試chmod 640 tabs*看看它是否有幫助。

這是來自info lsCygwin,

Following the file mode bits is a single character that specifies
whether an alternate access method such as an access control list
applies to the file.  When the character following the file mode
bits is a space, there is no alternate access method.  When it is
a printing character, then there is such a method.

GNU `ls' uses a `.' character to indicate a file with an SELinux
security context, but no other alternate access method.

A file with any other combination of alternate access methods is
marked with a `+' character.

引用自:https://serverfault.com/questions/399097