Не удается открыть файлы, измененные с помощью 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.