quinta-feira, 30 de abril de 2009

Interpretador inválido: Permissão negada !!!

-- Que raiva!

-- Porque esse script não roda? Parece que ninguém mais tem esse problema!? O que está errado!

Se vc já passou por isso, sabe do que estou falando... Quando vc vai executar um script, que vc tem certeza não estar errado, dai vem uma mensagem dessas:

/bin/sh: interpretador inválido: Permissão negada

Ou em inglês:

/bin/sh: bad interpreter: Permission denied

Ou outro interpretador fora o sh.

Tudo bem, esse problema não é novo, mas já é a terceira vez que posso por ele, e na hora nunca me lembro da solução.

Estou falando de solução e não de jeitinho ou qualquer outro workaround...

Eu só vi esse problema no Ubuntu e não sei se ocorre em utras distribs... Vamos lá. 

Infelizmente a mensagem de erro não fala com todas as palavras. O que está te faltado é permissão para executar o sh.

-- Tá de onda? Desde quando eu não tenho essa permissão! Tá loco!

Calma, calma, não é bem isso. O problema exotérico é que o seu script é que não tem permissão de execução.

-- Ce tá me zuando mesmo, é claro que eu marquei o script como executável. Conta outra!

Calma lá, eu não disse que seu script não era executável, eu só disse que ele não tinha essa permissão.

-- Hein!?

Pera rapá, não vai embora ainda! O que eu quero dizer é que o problema não é o seu arquivo, mas sim a partição (ou disco, lugar) aonde ele está salvo, ela é que foi montada sem permissão de execução. 

-- Te peguei! Sabia que vc estava viajando...

-- Minha partição em questão foi montada com a opção users, que habilita execução.

-- Pior do que isso, é uma partição FAT, onde os arquivos nem tem esses atributos...

Ai é que tá... Por incrível que pareça não, tem que acrescentar a opção exec nos parâmetros de montagem da partição, do disco... o que for.

-- Num falei que vc tava viajando! Coloquei a tal opção lá mas continua dando o mesmo erro.

Só que, ao que parece, a opção users não só deixa de habilitar a execução como também a reprimi. Funcionando como se fosse um noexec, opção para negar explicitamente a execução, muito usada em partições FAT onde os arquivos não tem atributos de permissão.

-- A tá... Eno!?

Fácil! É só colocar a opção exec depois da opção users, e não antes, como vc deve ter feito :)

-- Num credito que é só isso... Ráios! Raios duplos!! Ráios tríplos!!!

Para mudar as opções de montagem da partição, vc pode usar aquele utilitário que comentei no post anterior, o pysdm.

Nenhum comentário: