
Ich habe jedoch ein Skript im aktuellen Verzeichnis, vorausgesetzt:
- die Erlaubnis ist
-rwxr-xr-x
- Das Skript hat einen Shebang
#!/bin/bash
am Anfang der Datei - meine Schale ist
/bin/bash
- Ich kann es ausführen mit
bash script.sh
Ich kann es nicht mit ausführen ./script.sh
. Es gibt mir:
bash: ./script.sh: Berechtigung verweigert
Warum passiert das und was ist die Lösung?
Antwort1
Die Ausführung ist nicht zulässig, da sich die Datei auf einem Dateisystem befindet, das mit der Option „noexec“ gemountet wurde. Verwenden Sie ,
findmnt -u -T .
um herauszufinden, ob dies der Fall ist. Wenn Sie Root-Rechte haben,mount -o remount,exec <dir>
sollten Sie diese Option entfernen.Die Ausführung ist nicht gestattet durchMACRichtlinien (SELinux, SMACK, evtl. AppArmor). Überprüfen Sie die Systemprotokolle, beginnend mit
journalctl -n 100
unddmesg
. Das Umgehen dieser (wenn Sie der Administrator sind) hängt davon ab, welches MAC-System tatsächlich verwendet wird.
Antwort2
Nun, ich habe es gefunden: es ist „log2ram“
Wie gesagt verwende ich Raspbian auf einem Raspberry 4 und um die Lebensdauer der SD-Karte zu verlängern, habe ich die Protokolle im RAM abgelegt, und hier sind wir.
===
pi@R4:~/logs $ cat /etc/log2ram.conf
[...]
PATH_DISK="/var/log;/home/pi/logs"
===