não pode alterar a permissão de arquivo

2

Sempre que eu crio ou copio alguns arquivos shell para o dispositivo de armazenamento usb, então não consigo torná-los executáveis.

Se eu criar o test.sh, a permissão de arquivo padrão será 644, mas quando eu executar

chmod 777 test.sh

nenhum relatório de erros e echo $? também retornam "0". Mas ainda ls -l mostra permissão como 644 e não consigo executá-lo como ./test.sh

    
por SHW 25.06.2012 / 08:34

2 respostas

10

Sim, isso pode ocorrer se o dispositivo estiver formatado com um sistema de arquivos que não suporta esse tipo de configuração de permissão, como o VFAT. Nesses casos, o umask é feito em tempo real a partir de uma configuração no fstab (ou o equivalente ao hotplugging).

Veja, provavelmente, man mount para detalhes. Por exemplo, para o VFAT, encontramos:

Mount options for fat

uid=value and gid=value

Set the owner and group of all files. (Default: the uid and gid of the current process.)

umask=value

Set the umask (the bitmask of the permissions that are not present). The default is the umask of the current process. The value is given in octal.

etc.

    
por 25.06.2012 / 08:46
3

Parece que seu sistema de arquivos está montado com a opção noexec , que proíbe a execução de programas nesse sistema de arquivos, agindo como se todos os bits de execução nas permissões não fossem definidos. Se você usar a opção user mount (ou se alguma interface de usuário a usar de maneira limitada), noexec será ativado, a menos que você a desative explicitamente com exec .

A maioria dos dispositivos USB usa o sistema de arquivos VFAT derivado do MSDOS, que não tem noção de permissões. Você só pode especificar bits de permissão ao montar o sistema de arquivos, e essas permissões se aplicam a todos os arquivos nesse sistema de arquivos.

Se você não tiver permissão para executar um script, chame o interpretador explicitamente:

sh /media/stick/test.sh

Para um binário vinculado dinamicamente, invoque o vinculador dinâmico.

/lib/ld-linux.so.2 /media/stick/myprog
    
por 26.06.2012 / 03:11