Estou tentando instalar um aplicativo portátil no meu drive USB, para que seja compatível com o Ubuntu e o Windows (especificamente, um programa chamado eToys). O suporte já está embutido no aplicativo para ambos os sistemas operacionais - existe etoys.sh
para o Ubuntu e etoys.exe
para o Windows. Decidi instalar em uma unidade FAT, pois isso pode ser lido nos dois sistemas. Isso funciona bem no Windows, mas por algum motivo não consigo executar o etoys.sh no Ubuntu.
O problema não está no arquivo - quando toda a pasta é copiada para o disco rígido local, o aplicativo funciona muito bem no Ubuntu. Mas quando tento executá-lo a partir do USB, ele abre o arquivo em um editor de texto.
Tentei executá-lo em um terminal, mas recebi a mensagem Permissão negada.
Eu tive o mesmo problema com outros executáveis também.
Existe uma maneira fácil de executar coisas de um pendrive?
fonte
Respostas:
Devido às limitações do sistema de arquivos FA32, você não pode.
Agora, você pode trapacear:
sh etoys.sh
vez de./etoys.sh
se desejar, você pode até criar outro script (que poderia estar no seu disco rígido, por exemplo) que simplesmente chama seu script na unidade USB:
fonte
A montagem do dispositivo
-o mode=<value>
deve funcionarDefina o modo de todos os arquivos como valor e
0777
desconsiderando as permissões originais. Adicione permissão de pesquisa aos diretórios que têm permissão de leitura. O valor é dado em octal.fonte
mode=
opção para vfat, veja mount (8) .Na verdade, encontrei uma ótima solução em http://ubuntuforums.org/showthread.php?t=1665289 que resolveu o problema.
Basicamente, ele diz para executar o comando
e isso impedirá a montagem automática de discos com a opção showexec.
Não gosto de responder à minha própria pergunta, mas isso funcionou para mim e espero que ajude outras pessoas também.
para o ubuntu 18.04:
fonte
Em última análise, a questão parece ser que
udisks
monta o sistema de arquivos com ashowexec
opção, impedindo qualquer arquivo que não terminam em.exe
,.bat
ou.com
para ser executado.Uma pergunta relacionada (como fornecer opções personalizadas de montagem para udisks) pode ser encontrada aqui: Como configurar para gravar dados no pendrive instantaneamente? Acontece que você pode usar a
udev
configuração para fazer isso.A configuração de opções de montagem padrão para udisks é realmente impossível? propõe outra solução com base em
udisks-glue
, mas parece menos convincente, pois depende em última instânciaudisks
, para que você possa adicionar opções, mas não removê-las e, em particular,showexec
ainda esteja lá).Em qualquer caso, eu tendem a preferir isso ao patch de um arquivo binário.
fonte
Nenhuma das soluções mostradas funcionou tanto quanto eu poderia dizer para que um programa que eu escrevi como um programa de terminal Linux fosse executado na minha partição FAT32, mas alterar o nome do arquivo do programa para incluir a extensão .exe funcionou (obrigado pela dica) , tudo o que fiz foi renomear o nome do arquivo para filename.exe para o programa do terminal que estava tentando executar em uma partição FAT32 e, em seguida, desmontá-lo, montá-lo novamente e definir as permissões de disco para permitir a execução, depois vá para o nome do arquivo. exe e defina suas permissões e, em seguida, a marca de seleção ficaria em vez de voltar a um sinal de menos, e quando eu defino o caminho e digitei ./filename.exe no prompt do terminal, o programa foi executado como deveria e mostra a linha de comando, incluindo o nome do arquivo .exe conforme inserido, embora o diretório de arquivos do Ubuntu mostre o arquivo como MSDOS / Windows, ele é executado como um programa Linux.
fonte
Então, achei uma solução muito mais simples (e mais segura).
Use gparted para formatar o USB FAT32 e, em seguida, us Partition => Manage Flags para definir os seguintes sinalizadores: boot, lba
fonte
Você pode usar o
umask=000
modo:Fonte: wiki.linuxquestions.org , seção "Opções de montagem para gordura" no mount (8) .
fonte
Se a sintaxe for bash ...
fonte