Não é possível abrir arquivos modificados com o Cygwin no Windows, indício na saída ls -l

4

Não consigo mais abrir os arquivos tabs.html e tabs.js indicados na saída abaixo (2ª e 3ª de quatro). Usando o cygwin eu apliquei um patch para eles.

Eu acredito que a pista está na saída ls -l. Especificamente, ao contrário dos outros arquivos, no final do que normalmente seriam informações de permissões, se isso fosse * nix em vez de Windows / Cygwin.

No primeiro campo os arquivos que eu posso abrir tem a série de traços terminando com um sinal de mais: '---------- +' mas os arquivos não podem mais aberto não tem a terminação '+'. O que significa '+' e como posso modificar as permissões para que elas sejam restauradas, tendo em mente que isso está usando o Cygwin (no Windows 7), se isso fizer diferença.

Agradecemos antecipadamente:

----------+ 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
    
por George Jempty 15.06.2012 / 12:39

1 resposta

3

O mais significa que os arquivos possuem um conjunto de métodos de controle de acesso alternativo que não é mapeado para as permissões POSIX. ou seja, uma ACL do Windows ou algo parecido. Você precisa verificar os arquivos com o sinal + para descobrir o que é, provavelmente fora do Cygwin. É provável que os arquivos tenham sido criados ou modificados por um binário não ciente do Cygwin.

Você também pode usar getfacl , setfacl , cacls , xcacls para exibir ou definir as permissões mapeadas não POSIX.

A outra opção é adicionar permissões POSIX também, para que os usuários do Cygwin possam acessá-las, embora eu não saiba como elas interagirão com as permissões adicionais, mas você pode tentar, chmod 640 tabs* para ver se ajuda.

Isso é de info ls no 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.
    
por 15.06.2012 / 13:28