o chmod do cygwin se comporta como funcionando, mas não funciona

2

Minha instalação do Cygwin está se comportando de forma estranha: chmod não funciona.

[09:45 Administrator@DellIns14 ~] > ls -ls /usr/bin/chmod
64K -rwxr-xr-x 1 Administrator None 38K Feb  6  2012 /usr/bin/chmod

[09:47 Administrator@DellIns14 ~] > rm /tmp/example.sh
rm: remove regular empty file '/tmp/example.sh'? y
[09:48 Administrator@DellIns14 ~] > touch /tmp/example.sh
[09:48 Administrator@DellIns14 ~] > ls -ls /tmp/example.sh
0 -rw-r--r-- 1 Administrator None 0 Jul  8 09:48 /tmp/example.sh
[09:48 Administrator@DellIns14 ~] > chmod -v +x /tmp/example.sh
mode of '/tmp/example.sh' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)
[09:48 Administrator@DellIns14 ~] > ls -ls /tmp/example.sh
0 -rw-r--r-- 1 Administrator None 0 Jul  8 09:48 /tmp/example.sh
[09:48 Administrator@DellIns14 ~] >

Observe que o diretório é gravável, conforme o arquivo é criado.

Quando olho para este diretório de uma perspectiva windows , ele é relatado como somente leitura (mesmo depois de alterá-lo para leitura-gravação, ele reverte para leitura -só).
As capturas de tela estão em O / tmp do cygwin é somente leitura no Windows e não pode ser alterado para leitura / gravação

Você pode sugerir como depurar / resolver?


Ambiente:
Windows 7, Cygwin 1.7.29 (0.272 / 5/3) i686

    
por boardrider 08.07.2014 / 09:28

3 respostas

2

Parabéns a esta resposta link conteúdo colado abaixo

Você provavelmente está usando o NTFS ou o FAT32 no Windows, e esses sistemas de arquivos não suportam a permissão executável . Em vez disso, o cygwin analisa o nome e o conteúdo do arquivo para determinar se ele é executável :

Files are considered to be executable if the filename ends with .bat, .com or .exe, or if its content starts with #!.

Portanto, você deve se certificar de que o arquivo bash começa com um shebang. Então, você deve poder apenas executar o arquivo, desconsiderando a saída de permissão de ls .

    
por 22.03.2016 / 10:27
1

Eu encontrei Esta resposta útil.

Além das permissões POSIX normais que contenham proprietário, grupo, outro acesso, a permissão de arquivo no Cygwin também pode ser afetada pela ACL do Windows.

No seu caso, por favor tente

ls -l /tmp/example.sh
getfacl /tmp/example.sh
setfacl -b /tmp/example.sh
ls -l /tmp/example.sh
chmod -v +x /tmp/example.sh
ls -l /tmp/example.sh
    
por 16.02.2015 / 05:01
1

Eu não consegui chmod até descobrir que o / etc / fstab continha:

none /cygdrive cygdrive binary,noacl,posix=0,user 0 0

mas precisava ser:

none /cygdrive cygdrive binary,posix=0,user 0 0

Após fechar todos os processos abertos do Cygwin e reiniciar, tudo funcionou.

    
por 29.04.2016 / 21:47