无法在 Windows 上打开使用 Cygwin 修改的文件,ls -l 输出中有提示

无法在 Windows 上打开使用 Cygwin 修改的文件,ls -l 输出中有提示

我无法再打开下面输出中指示的 tabs.html 和 tabs.js 文件(四个中的第二个和第三个)。我使用 cygwin 对它们进行了修补。

我认为线索就在 ls -l 输出中。具体来说,与其他文件不同,如果这是 *nix 而不是 Windows/Cygwin,则在通常是权限信息的末尾。

在第一个字段中,我打开的文件有一系列以加号结尾的破折号:“----------+”,但我无法再打开的文件没有以“+”结尾的破折号。“+”表示什么?我如何修改权限才能恢复它?请记住,这是在 Windows 7 上使用 Cygwin,如果这有区别的话。

提前致谢:

----------+ 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

答案1

加号表示文件具有与 POSIX 权限不对应的替代访问控制方法集。即 Windows ACL 或类似的东西。您需要使用 + 号检查文件以找出它是什么,可能在 Cygwin 之外。文件可能是由不支持 Cygwin 的二进制文件创建或修改的。

您还可以使用getfaclsetfaclcaclsxcacls查看或设置非 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.

相关内容