Não é possível executar o script enquanto sua permissão for 'x'

Não é possível executar o script enquanto sua permissão for 'x'

Eu tenho um script no diretório atual, no entanto, dado que:

  1. a permissão é-rwxr-xr-x
  2. o script tem um shebang #!/bin/bashno topo do arquivo
  3. minha concha é/bin/bash
  4. Posso executá-lo usandobash script.sh

Não consigo executá-lo usando ./script.sh. Isso me dá:

bash: ./script.sh: Permissão negada

Por que isso está acontecendo e qual é a solução?

Responder1

  • 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>deverá remover esta opção.

  • A execução não é permitida porMACpolíticas (SELinux, SMACK, possivelmente AppArmor). Verifique os logs do sistema, começando com journalctl -n 100e dmesg. Ignorar isso (se você for o administrador) depende de qual sistema MAC está realmente em uso.

Responder2

Bem, eu encontrei: é "log2ram"

Como eu disse, estou usando o Raspbian em um Raspberry 4, e para aumentar a vida útil do SD, coloquei os logs na RAM e aqui estamos.

===
pi@R4:~/logs $ cat /etc/log2ram.conf
[...]
PATH_DISK="/var/log;/home/pi/logs"
===

informação relacionada