Hallo,
ich habe auf einem public server fail2ban laufen und lasse mir täglich einen kleinen selbst gebastelten system report schicken. Dort soll, als Indikator für die Angriffsaktivität, auch die Anzahl der Zeilen aus iptables drin stehen. Da nur root iptables aufrufen kann lautet der passende Befehl zur Auswertung und Übertragung des Wertes in eine Datei:
1 | /sbin/iptables -L | /usr/bin/wc > /home/frank/blockedips |
Mache ich das von der root-shell, gibt es keine Probleme.
Packe ich das identisch in eine skriptdatei blockedips.sh und rufe diese dann per ./blockedips auf, dann wird die entsprechende Datei nicht angerührt - obwohl alle Pfade vollständig aufgeführt wurden:
1 2 3 | /bin/bash /sbin/iptables -L | /usr/bin/wc > /home/frank/blockedips |
blockedips sieht so aus:
1 2 | frank@v12345:~$ ll blockedips -rw-rw-rw- 1 frank frank 24 Mar 23 15:45 blockedips |
Warum wird die Datei nur von der shell direkt, nicht aber per skript (neu) geschrieben?
Bearbeitet von rklm:
Codeblöcke und Syntaxhighlighting hinzugefügt. Bitte beachte Forum/Syntax!