• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Shellskript startet über rc5.d nicht

kap

Newbie
Hallo Liebe NG,

ich habe im /etc/init.d eine datei angelegt, die mittels iptables Filter setzt. Dann habe ich im /etc/init.d/rc5.d/ mit link -s einen Link mit dem Namen S17blabla gesetzt. Wenn ich den Link mit ./S17blabla starte funktioniert es aber wenn ich den Rechner neu starte, dann wird dieser Script nicht gestartet.
Ich setze SuSe 9.3 ein. Muß ich noch irgendwo start und stop dieses Scriptes angeben?

Die Datei, die mittels Link gestartet wird, hat chmod 777

Vielen Dank!
 
Eigentlich sollte das Ganze gehen...
Mach mal
cd /
/etc/init.d/rc5.d/S17blabla start
=> Wenn das nicht geht ist evtl. der Link falsch
Versuch2:
ein "set -x" am Anfang in das Script => Shell zeigt Befehle vor dem Ausführen an..
=> Beim Start schaun, ob das Skript Fehlermeldungen bringt.. Dann könnte der Inhalt fehlerhaft sein.
Versuch 3:
who -r
=> Ist runlevel 5 schon aktiv.. ( oder durch einen Dummen Zufall runlevel 3 durch falsche /etc/inittab )

Viele Grüße,

Haveaniceday
 
OP
K

kap

Newbie
hi, es ist kein klassisches Start Stop Script.
Es ist der runlevel 5 (Grafische oberfläche) habe auch init 5 ausgeführt. Manuel Starten heißt bei mir dies hier: ./S21blabla
dann wird es gestartet. Es ist nicht nach (template) Skeleton aufgebaut. Ich habe festgestellt, daß mann über yast2 den Runlevel Editor starten kann. Dann kann man die Dienste bzw. die Skripte aussuchen und mitteilen in welchem Level die gestartet werden sollen. Dann geht das auch. Mann kann dort folgendes auswählen B 1 2 3 4 5 S Die Zahlen sind wohl die Runlevel. Was haben die Buchtaben B und S für eine Bedeutung.

Das Ganze habe ich auch mit nohub & getestet und auch mit echo
aber definitiv ist, wenn ich mit Yast2 nichts verändere, dann wird dieser Script nicht gezogen.
 

oc2pus

Ultimate Guru
aaargh, noch einer ;)
http://www.linux-club.de/viewtopic.php?t=42131

ist da jetzt ein Nest, oder wie ?
 
OP
K

kap

Newbie
schuldikunkkkkkk Octopuuuus küsschen und locker bleiben, noch ist kein Meister v. Himmel gefallen. Hab sogar mit Suchsystem etwas gefunden, wie der Kollege da oben empfahl, nur mien Pech, hab einen Gefunden der das gleiche Problem wie ich hatte und es wurde ihm nicht geholfen. Dann habe ich daß mit Skeleton gefunden, usw...
 

oc2pus

Ultimate Guru
kap schrieb:
schuldikunkkkkkk Octopuuuus küsschen und locker bleiben, noch ist kein Meister v. Himmel gefallen. .
ich bin ganz locker ;)
** küßchen wegwisch ** :oops:

oc2pus <== so schreiben NICHT Octopus!! der lebt im tiefen Ozean, gelle ...

so und jetzt baue dir ein ordentliches runlevel-script und dann klappt das auch ;)
 

Martin Breidenbach

Ultimate Guru
Zum Bleistift (ohne die eigentlichen Firewall-Regeln):

Code:
#! /bin/bash
#
# /sbin/init.d/firewall
#
#   and symbolic its link
#
# /usr/sbin/rcfirewall
#
#
### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $network route
# Required-Stop:  $network
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 2 6
# Description: Start firewall to block unauthorized access
### END INIT INFO

# load needed modules
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# setting variables

LAN_IF="eth0"
DMZ_IF="eth1"
INET_IF="eth2"

IPTABLES="/usr/sbin/iptables"

case "$1" in
    start)
	echo "Starting firewall..."
      
      # hier Firewall Regeln einfügen
	;;

    open)
	echo "Stopping firewall - enable routing, accept everything..."
	# enable routing
	echo "1" > /proc/sys/net/ipv4/ip_forward

	# empty all chains 
	$IPTABLES -t nat -F PREROUTING
	$IPTABLES -t nat -F POSTROUTING
	$IPTABLES -F

	# delete all chains
	$IPTABLES -X

	# setting chain policies
	$IPTABLES -P INPUT   ACCEPT
	$IPTABLES -P OUTPUT  ACCEPT
	$IPTABLES -P FORWARD ACCEPT

	## Masquerading auf externem IF einschalten
	$IPTABLES -t nat -A POSTROUTING -o $INET_IF -j MASQUERADE

	;;
    stop)
	echo "Stopping firewall - disable routing, drop everything..."
	# disable routing
	echo "0" > /proc/sys/net/ipv4/ip_forward

	# empty all chains 
	$IPTABLES -t nat -F PREROUTING
	$IPTABLES -t nat -F POSTROUTING
	$IPTABLES -F

	# delete all chains
	$IPTABLES -X

	# setting chain policies
	$IPTABLES -P INPUT   DROP
	$IPTABLES -P OUTPUT  DROP
	$IPTABLES -P FORWARD DROP
	;;
    restart)
	$0 stop && $0 start || return=$rc_failed
	;;
    *)
	echo "Usage: $0 {start|stop|open|restart}"
	exit 1
esac
exit 0
 
OP
K

kap

Newbie
Hallo Madddin,
erstmals vielen Dank! Ich will eigentlich nur noch etwas grundsätzliches wissen. Ich glaube auch, daß manche mein Problem grundsätzlich nicht verstanden haben.

Wenn ich ein script (z. B. mit iptables rules) im Verzeichniss /etc/init.d/ erstelle mit chmod 777 und anschließend diese im /rc5.d als S99meinfirewall linke (ln -s) wird dann der Script überhaupt gestartet wenn dieser start stop sequence (if Schleife) nicht drin steht. Ich meine ob die Datei bzw. Link S99meinfirewall überhaupt ausgeführt (mit oder ohne Erfolg) wird. Ich meinte, daß die Datei erst gar nicht gestartet hatte.
 

Martin Breidenbach

Ultimate Guru
kap schrieb:
Wenn ich ein script (z. B. mit iptables rules) im Verzeichniss /etc/init.d/ erstelle mit chmod 777 und anschließend diese im /rc5.d als S99meinfirewall linke (ln -s) ....

... dann machst Du Dir unnötige Arbeit. Installiere das Skript mit insserv und (de-)aktiviere es dann im Runleveleditor nach Belieben.

Aber genau das steht in den Links die oc2pus gepostet hat. Tu doch einfach was man Dir rät sonst rät Dir nämlich irgendwann keiner mehr was... :roll:
 

admine

Ultimate Guru
kap schrieb:
Wenn ich ein script (z. B. mit iptables rules) im Verzeichniss /etc/init.d/ erstelle mit chmod 777 und anschließend diese im /rc5.d als S99meinfirewall linke (ln -s) wird dann der Script überhaupt gestartet wenn dieser start stop sequence (if Schleife) nicht drin steht. Ich meine ob die Datei bzw. Link S99meinfirewall überhaupt ausgeführt (mit oder ohne Erfolg) wird. Ich meinte, daß die Datei erst gar nicht gestartet hatte.
Und warum es u.U. gehen kann bzw. auch warum nicht, hat oc2pus hier erläutert ;)
http://www.linux-club.de/viewtopic.php?p=221617#221617
 
Oben