Por que o Unix configura o sinalizador de executável para sistemas de arquivos FAT? [fechadas]

3

Tenho notado que quando eu montei um sistema de arquivos FAT no Linux, todos os arquivos têm suas permissões executáveis definidas. Por que é isso? Não há quase nenhuma chance de que você possa ou queira executar diretamente qualquer programa encontrado em um sistema de arquivos FAT, e ter o bit executável definido implicitamente para todos os arquivos me parece chato.

Eu entendo que o FAT (e outros sistemas de arquivos também) não possuem bits de modo, e assim o modo 777 que estou vendo nos arquivos é apenas simulado pelo driver do sistema de arquivos no Unix. Minha pergunta é por que 777 em vez de 666?

    
por Edward Falk 06.09.2016 / 02:54

1 resposta

8

O FAT pode não ser um sistema de arquivos no estilo POSIX, isso não significa que você não deve ter permissão para armazenar executáveis nele e executá-los diretamente a partir dele. Como o FAT não armazena permissões POSIX, a única maneira de isso acontecer (facilmente) é se o modo padrão usado para arquivos permitir sua execução ...

No passado, quando (V) o FAT ainda era usado como o principal sistema de arquivos para outros sistemas operacionais (DOS e Windows), e discos rígidos eram menores, não era incomum armazenar binários Unix / Linux em um sistema de arquivos FAT. . (Existe até uma variante FAT que armazena os atributos POSIX em arquivos especiais, para que você possa executar o Linux em um sistema de arquivos FAT.) Atualmente, você ainda pode acabar usando chaves USB, por exemplo.

Se você estiver preocupado com as implicações de segurança, há várias opções que você pode usar. noexec e nodev provavelmente já estão definidos para sistemas de arquivos removíveis em sua distribuição; dmask e fmask permitem determinar especificamente os modos usados. showexec só irá definir os bits executáveis em arquivos com .bat , .com ou .exe extensões. (Observe que as permissões de um arquivo e a capacidade de executá-lo são separadas ...)

    
por 06.09.2016 / 06:48