Não é possível executar programas fora da minha mídia externa

1

Minha unidade está formatada para ext3 / ext4, portanto, sei que não é um problema com as permissões executáveis do sistema de arquivos.

Eu tive esse problema com um programa, então, para testá-lo, fiz um arquivo rápido que simplesmente abriu um terminal e executou sudo apt-get update . Ao executá-lo, recebo a seguinte caixa:

"63 GB Volume" contém software destinado a ser iniciado automaticamente. Você gostaria de executá-lo?

Se eu clicar em Run , obtenho outra caixa:

Opa! Houve um problema ao executar este software. Não é possível localizar o programa.

Existe alguma solução que eu possa tentar (além de colocar o software na minha unidade interna)? Estou tentando executar programas fora da unidade externa especificamente porque minha unidade interna está com pouco espaço.

Também verifiquei se a caixa "Permitir execução como executável" está marcada e (na verdade, não consigo verificá-la desativada ).

EDIT: Desculpas por não incluir o script. Isto é o que está no arquivo:

#! /bin/bash

gnome-terminal -e 'bash -c "sudo apt-get update; exec bash"'

Estou tendo esse problema com todo o software que tento executar na mídia externa.

Aqui está a saída de mount | grep /dev/sd :

/dev/sda1 on /var/host/media/removable/SD Card type fuseblk (rw,nosuid,nodev,noexec,relatime,dirsync,user_id=302,group_id=302,allow_other,blksize=4096)
    
por Alphys Hedge 10.05.2017 / 07:06

1 resposta

1

Sua unidade é montada com a opção noexec . AFAIK Isso literalmente não permite a execução de programas no volume, independentemente das configurações nos arquivos individuais. Soluções específicas variam dependendo de como você montou o volume em primeiro lugar, mas do ponto de vista geral você precisa montar o volume sem a opção noexec ou trocá-lo explicitamente pela opção exec . Aqui está um trecho da página man do fusível:

OPTIONS
       Most of the generic mount options described in mount are supported (ro,
       rw, suid, nosuid, dev,  nodev,  exec,  noexec,  atime,  noatime,  sync,
       async,  dirsync). Filesystems are mounted with nodev,nosuid by default,
       which can only be overridden by a privileged user.

E a parte relevante da página de manual de montagem:

noexec Do  not  allow  direct  execution of any binaries on the mounted
              filesystem.  (Until recently it was  possible  to  run  binaries
              anyway  using a command like /lib/ld*.so /mnt/binary. This trick
              fails since Linux 2.4.25 / 2.6.0.)

Até onde eu sei, o fusível não suporta a opção de remontagem, então acredito que você tenha que desmontar /dev/sda1 (após fechar todos os arquivos abertos no dispositivo) com fusermount -u "/var/host/media/removable/SD Card" e montá-lo novamente com as opções requer (diferente de noexec) normalmente usando o comando mount . Veja man mount man fuse e man fusermount para mais detalhes conforme necessário para sua situação específica.

    
por Elder Geek 10.05.2017 / 21:46