Невозможно выполнить скрипт, пока его разрешение равно «x»

Невозможно выполнить скрипт, пока его разрешение равно «x»

Однако у меня есть скрипт в текущем каталоге, учитывая, что:

  1. разрешение есть-rwxr-xr-x
  2. в скрипте есть шебанг #!/bin/bashв верхней части файла
  3. моя оболочка/bin/bash
  4. Я могу выполнить это с помощьюbash script.sh

Я не могу выполнить его с помощью ./script.sh. Он дает мне:

bash: ./script.sh: Отказано в доступе

Почему это происходит и каково решение?

решение1

  • Выполнение не разрешено, так как файл находится в файловой системе, смонтированной с опцией "noexec". Используйте , findmnt -u -T .чтобы узнать, так ли это. Если у вас есть привилегии root, mount -o remount,exec <dir>следует удалить эту опцию.

  • Казнь не допускаетсяМАКПолитики (SELinux, SMACK, возможно AppArmor). Проверьте системные журналы, начиная с journalctl -n 100и dmesg. Обход этого (если вы администратор) зависит от того, какая система MAC фактически используется.

решение2

Ну, я нашел: это "log2ram"

Как я уже сказал, я использую Raspbian на Raspberry 4, и чтобы увеличить срок службы SD, я поместил логи в оперативную память, и вот что получилось.

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

Связанный контент