Eu tenho um script no diretório atual, no entanto, dado que:
- a permissão é
-rwxr-xr-x
- o script tem um shebang
#!/bin/bash
no topo do arquivo - minha concha é
/bin/bash
- Eu posso executá-lo usando
bash script.sh
Não consigo executá-lo usando ./script.sh
. Dá-me:
bash: ./script.sh: Permissão negada
Por que isso está acontecendo e qual é a solução?
A execução não é permitida porque o arquivo está em um sistema de arquivos montado com a opção "noexec". Use
findmnt -u -T .
para descobrir se esse é o caso. Se você tiver privilégios de root,mount -o remount,exec <dir>
deve remover esta opção.A execução não é permitida pelas políticas MAC (SELinux, SMACK, possivelmente AppArmor). Verifique os logs do sistema, começando com
journalctl -n 100
edmesg
. Ignorar isso (se você for o administrador) depende de qual sistema MAC está realmente em uso.Bem, eu encontrei: é "log2ram"
Como eu disse, estou usando o Raspbian em um Raspberry 4 e, para aumentar o tempo de vida do SD, coloquei os logs na RAM e aqui estamos.