Os atributos do shell são alterados após a cópia e a execução falharem

0

Eu crio um script de shell de teste no meu diretório Desktop, o faço executável e roda em OK. Eu copio para um chip SD montado e os atributos mudam e a execução falha.

Aqui está um exemplo de teste. Observe o prompt de comando é o diretório de trabalho. Foi ligeiramente editado (adicionou linhas em branco e apagou alguns prompts) para maior clareza.

Eu não entendo porque os atributos mudam e porque o script falha.

## print file test.sh contents
Desktop>>  cat test.sh    
#!/bin/bash                    
echo 'Works OK'
Desktop>>

## list file attributes to verify it is executable. 
##Note attributes. They change after file copy.
Desktop>>  ls -al test.sh                           
-rwxr-xr-x. 1 ron ron 28 Feb 16 13:41 test.sh       
Desktop>>

## run the shell
## shell output is correct.
Desktop>>  ./test.sh                                
Works OK 
Desktop>>

## copy shell to SD chip
Desktop>>  cp test.sh /media/removable/10-EDC/org   
Desktop>>

## change to SD chip 
Desktop>>  cd /media/removable/10-EDC/org
org>>

##list file attributes. Note that they have changed.
## org>>  ls -al test.sh                               
-rwxrwxrwx. 1 ron ron 28 Feb 16 14:58 test.sh
org>>

## run the shell. Fails.
org>>  ./test.sh                                    
bash: ./test.sh: Permission denied
org>> 

OS é o Ubuntu 16.04.

Foi sugerido que pode ter algo a ver com a forma como o chip SD foi formatado. Eu acredito que é formatado como msdos (gordura) para compatibilidade com outras máquinas. Não tenho experiência nessa área (problemas de formatação).

Qualquer ajuda é apreciada.

    
por Ron 17.02.2018 / 02:42

1 resposta

1

Depende de como o cartão SD é montado. Uma opção de montagem é "noexec", que proíbe a execução de tudo no dispositivo montado. Portanto, verifique suas opções de montagem usando mount (sem parâmetros) ( mount | grep media pode restringir a saída para seu cartão SD).

E sim, se o dispositivo estiver formatado para VFAT (como de costume para cartões SD, a menos que eles sejam destinados a um Raspberry), ele não suportará os indicadores de acesso Usuário / Grupo / Outros e não o sinalizador Exec. são manipulados é direcionado por opções de montagem.

    
por 17.02.2018 / 09:29