/etc/init.d

Résolu
Hello,
J'ai crée un fichier firewall.sh. Je ne parviens pas a le lancer apres des modifications par la commande
/etc/init.d/firewall.sh
J'ai ubuntu 6.10.
Où est le probleme???

16 réponses

  1. Modérateur
    Salut,

    affiche
    ls -l /etc/init.d/firewall.sh
    sinon tu parles de lancement de ton script au démarrage de ton système?

    Si oui tu as 2 possibilités

    - avec rc.local
    - avec un script de demarrage qui te permettra aussi de l'arrêter ou démarrer manuellement comme on fait avec les daemons
    1. Modérateur
      Salut,

      je suis content que tu as réussi :-))

      Bon week-end à toi.
      1. Modérateur
        Ecoute, il faut lire attentivement mes messages (surtout 16)

        maintenant tu as créé les liens vers /etc/init.d/iptables (d'ailleurs je ne comprends pas debian:/mnt/hdb5/ogg# find /etc/ -name 'iptables*'

        bash: debian:/mnt/hdb5/ogg#: Aucun fichier ou répertoire de ce type
        )

        affiche
         ls -l /etc/iptables_st{art,op}

        essaie manuellement
         /etc/init.d/iptables
        /etc/init.d/iptables start
        iptables -v -L
        /etc/init.d/iptables stop
        iptables -v -L
        tu n'as qu'à suivre mes messages pas à pas
        1. Bonsoir ou bonjour lami,
          J'ai suivi pas a pas ce que tu m'as dit et tout fonctionne impecablement.
          Merci bien pour ton aide.
          Super genial et en plus tu m'as appris quelque chose.
          Bon week end
      2. Modérateur
        Re,

        je vais sortir, donc au cas où je te laisse la commande (toutefois tu pouvais regarder dans man update-rc.d )
        update-rc.d -f iptables start 99 2 3 4 5 .
        --
        lami20j
        1. debian:/mnt/hdb5/ogg# find /etc/ -name 'iptables*'

          bash: debian:/mnt/hdb5/ogg#: Aucun fichier ou répertoire de ce type

          update-rc.d -f iptables start 99 2 3 4 5 .

          Adding system startup for /etc/init.d/iptables ...
          /etc/rc2.d/S99iptables -> ../init.d/iptables
          /etc/rc3.d/S99iptables -> ../init.d/iptables
          /etc/rc4.d/S99iptables -> ../init.d/iptables
          /etc/rc5.d/S99iptables -> ../init.d/iptables
      3. Modérateur
        Hello,

        c'est ma faute :-)) j'ai fait une erreur, mais ce n'est pas grave :-))
        avant de te donner la bonne commande

        affiche s'il te plaît
        debian:/mnt/hdb5/ogg# find /etc/ -name 'iptables*'
        /etc/init.d/iptables
        /etc/iptables_start
        /etc/iptables_stop
        
        j'espère que tu obtiendrai le même resultat :-))
        1. Modérateur
          Salut,

          en root

          cat  /home/gerard/scripts/firewall.sh > /etc/iptables_start
          ici tu trouve le script iptables_stop que tu dois le sauvegarder dans /etc
          ici tu trouves le script iptables que tu dois le sauvegarder dans /etc/init.d

          Ensuite établi les droits
          chmod -v 0700 /etc/iptables_st*
          chmod -v 0700 /etc/init.d/iptables
          Et tu crées les liens
          update-rc.d -f start 99 2 3 4 5 iptables .
          Et affiche
          tail /etc/rc.local
          tail /etc/initd/rc.local
          locate rc.local | while read i;do ls -l $i;done 2>/dev/null
          1. Voila Lami, j'ai tout ce que tu m'as dit m'est lorsque je fait

            update-rc.d -f start 99 2 3 4 5 iptables .

            Voila ce qu'il me repond

            update-rc.d: /etc/init.d/start: file does not exist

            SNIFFFF
        2. Modérateur
          Il me semble qu'on a melangé tout.
          c'est toi qui dit

          Toutefois j'aimerais relancer mon fitrewall.sh apres certaines modifications que jafais sans relancer la machine et via la commande /etc/init.d/firewall.Sh restart.... voila

          et maintenant tu me dit que le fichier n'existe pas

          je ne comprends rien du tout

          tape en root updatedb
          ensuite affiche
          locate rc.local
          locate firewall.sh 
          Ce que je ne comprends pas, c'est que si tu suis pas à pas mon message 8 tu dois t'en sortir.
          1. Ok lami tu a raison,
            Lorsque j'ecris 'updatedb ' il ne me dit rien.

            locate rc.local
            /etc/init.d/rc.local
            /etc/rc2.d/S99rc.local
            /etc/rc3.d/S99rc.local
            /etc/rc4.d/S99rc.local
            /etc/rc5.d/S99rc.local
            /etc/rc.local
            /etc/rc.local~

            locate firewall.sh
            /home/gerard/scripts/firewall.sh
            /home/gerard/scripts/firewall.sh~
        3. mv: ne peut évaluer `/etc/init.d/firewall.sh': Aucun fichier ou répertoire de ce type
          1. Modérateur
            Donc soit tu n'as pas lu mon message, soit tu n'as pas compris.

            On laisse tomber rc.local, donc enleve la ligne qui démarre ton script ou mets un # pour la commenté dans rc.local

            ensuite regarde mon message 8 à partir de 2. avec un script de démarrage dans /etc/init.d

            tu n'as qu'à respecter pas à pas

            Garde ton fichier firewall.sh dans le répertoire home/gerard/scripts. et on ne parle plus de lui

            On va parler de
            /etc/iptables_start
            /etc/iptables_stop
            /etc/init.d/iptables

            ce n'est parce que je t'impose de nommer les fichiers ainsi, mais seulement pour se comprendre, et une fois que tu as compris tu ferras ce que tu veux

            Et dans ton cas, pour t'expliquer un peu
            tu ne peux pas faire /etc/init.d/firewall.sh stop puisque le script firewall.sh n'est pas conçu pour ça

            Pour obtenir /etc/iptables_start tu peux taper en root
            mv /etc/init.d/firewall.sh /etc
            1. Modérateur
              Salut,

              ast-tu suivi mon message?
              si tu ne me dit pas ce que tu fait je ne peux pas savoir.
              le fait que tu me dit seulement que ça ne marche pas, ne m'est d'aucun aide

              as tu créé le script de démarrage?
              as-tu créé les scripts /etc/iptables_start et /etc/iptables_stop?
              1. Alors voilà, j'ai edité un fichier iptables qui se nomme firewall.sh qui se trouve dans le chemin /home/gerard/scripts.
                Dans rc.local j'ai mis le chemin et ça fonctionne car il se lance au demarage de la machine. Toutefois j'aimerais relancer mon fitrewall.sh apres certaines modifications que jafais sans relancer la machine et via la commande /etc/init.d/firewall.Sh restart.... voila

                Merci pour ton dévouement
            2. Modérateur
              Ok, tu as de la chance :-)

              1. avec rc.local


              dans le fichier rc.local tu ajoutes le chemin vers ton script

              /chemin/vers/firewall.sh


              Si tu utilises la 2ème possibilité tu n'as pas besoin de rc.local


              2. avec un script de démarrage dans /etc/init.d


              tu crées 2 fichiers dans /etc

              iptables_start
              iptables_stop


              et un script de démarrage dans /etc/init.d que tu peux l'appeller

              iptables

              Pas besoin d'extension .sh

              le fichier /etc/iptables_start contiendra ce que tu as en firewall.sh

              le fichier /etc/iptables_stop c'est pour la désactivation du firewall (des fois on a besoin pour certains tests)
              et il contiendra
              #! /bin/sh
              #
              # Description: désactivation du firewall netfilter/iptables
              #
              # table FILTER
              #
              iptables -F
              iptables -X
              iptables -P INPUT   ACCEPT 
              iptables -P OUTPUT  ACCEPT
              iptables -P FORWARD ACCEPT 
              
              # la table NAT
              #
              iptables -t nat -F
              iptables -t nat -X
              iptables -t nat -P PREROUTING    ACCEPT
              iptables -t nat -P POSTROUTING   ACCEPT
              iptables -t nat -P OUTPUT        ACCEPT
              #
              # la table MANGLE
              #
              iptables -t mangle -F
              iptables -t mangle -X
              iptables -t mangle -P PREROUTING    ACCEPT
              iptables -t mangle -P INPUT         ACCEPT
              iptables -t mangle -P OUTPUT        ACCEPT
              iptables -t mangle -P FORWARD       ACCEPT
              iptables -t mangle -P POSTROUTING   ACCEPT
              
              

              Le script /etc/init.d/iptables
              #!/bin/sh
              
              case $1 in
              'start' )
              	/etc/iptables_start
              	;;
              'stop'	)
              	/etc/iptables_stop
              	;;
              *)
              	echo "usage: -bash {start|stop}"
              	;;
              esac
              

              Ensuite établi les droits
              chmod -v 0700 /etc/iptables_st*
              chmod -v 0700 /etc/init.d/iptables
              Et tu crées les liens
              update-rc.d -f start 99 2 3 4 5 iptables .


              Au démarrage dans le runlevel 2,3,4,5 le firewall sera en état de fonction

              Tu peux desactivé le firewall avec
              /etc/init.d/iptables stop

              Si tu fait des modifications tu peux le rélancer avec
              /etc/init.d/iptables start
              Si tu tapes
              /etc/init.d/iptables
              tu auras le message usage: -bash {start|stop}

              Attention!!!

              c'est un script minimal qui normalement dans ton cas doit faire l'affaire
              1. Bonsoir
                Mon firewall.sh se lance bien lorsque je boot la machine mais je parviens tj pas a le relancer via /etc/init.d/firewall.sh stop ou start c'est selon. Je dois tj rebooter la machine
                Merci
            3. coucou,
              oui, il y a un rc.local et mon script se lance au demarrage. J'aimerais seulement le relancer apres avoir fait quelques modifications style..

              /etc/init.d/firewall.sh start mais ça ne fonctionne pas il me repond qu'il est inexistant voilà... et pourtant il est bien là

              A ta question j'aimerais pouvoir controler les 2.
              Merci à toi et passe une bonne soirée.
              A bientot
              1. Modérateur
                Salut,

                je dois partir maintenant.
                Réponds à mes questions s'il te plaît. Merci.
                Si jamais tu ne trouves pas d'aide et si tu peux attendre jusqu'à demain je vais te donner dans les 2 cas que j'ai mentionné la solution détaillée.
                1. Modérateur
                  Donc que veux tu faire?

                  que ton script s'exécute au démarrage de système?
                  que tu puisse contrôler le démarrage et la désactivation?
                  les 2?
                  Et j'ai besoin d'une info puisque Ubuntu je ne connais pas trop :-)
                  Il y a le fichier /etc/init.d/rc.local sous Ubuntu?

                  1. Modérateur
                    Alors tu dois commencer par me dire où se trouve ton fichier.
                    1. /home/gerard/scripts
                  2. hello,
                    J'ai deja fait ça mais il me marque aucun 'fichier de ce type'.
                    Pour info, au lancement mon script firewall se lance bien

                    ls -l /etc/init.d/firewall.sh
                    Aucun fichier ou répertoire de ce type

                    Voila là réponse
                    merci