
Однако у меня есть скрипт в текущем каталоге, учитывая, что:
- разрешение есть
-rwxr-xr-x
- в скрипте есть шебанг
#!/bin/bash
в верхней части файла - моя оболочка
/bin/bash
- Я могу выполнить это с помощью
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"
===