Не удается открыть файлы, измененные с помощью Cygwin в Windows, подсказка в выводе ls -l

Я больше не могу открыть файлы 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

1 ответ

Решение

Плюс означает, что для файлов установлен альтернативный метод управления доступом, который не соответствует разрешениям POSIX. то есть Windows ACL или что-то в этом роде. Вам нужно проверить файлы со знаком +, чтобы выяснить, что это, возможно, за пределами Cygwin. Вероятно, файлы были созданы или изменены двоичным файлом, не поддерживающим Cygwin.

Вы также можете использовать getfacl, setfacl, cacls, xcacls для просмотра или установки сопоставленных разрешений не POSIX.

Другой вариант - добавить разрешения POSIX, чтобы ваши пользователи Cygwin могли получить к ним доступ, хотя я не уверен, как они будут взаимодействовать с дополнительными разрешениями, но вы можете попробовать, chmod 640 tabs* чтобы увидеть, поможет ли это.

Это из info ls на Cygwin,

 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.
Другие вопросы по тегам