[RISOLTO] ripristino rc.local in Debian Strech

Discussioni relative a Debian e Linux

[RISOLTO] ripristino rc.local in Debian Strech

Messaggioda marco91 » 21/07/2018, 22:57

Ciao a tutti.
Sono appena emigrato in Debian 9 e non sò come possa avviare uno script automaticamente all'avvio del pc, senza avere a disposizione la funzione di "rc.local".
Come posso avviare automaticamente il mio script di iptables senza rc.local ?
Grazie.
Ultima modifica di marco91 il 24/07/2018, 10:19, modificato 1 volta in totale.
marco91
Full Member
Full Member
 
Messaggi: 149
Iscritto il: 06/12/2015, 12:02
Località: imola


Re: avvio automatico script.sh

Messaggioda marco91 » 22/07/2018, 9:06

quella guida l'avevo già provata prima di aprire la domanda, ma non ci sono riuscito.
Ho provato anche questa guida, ma nulla: http://www.soluzionilinux.com/ubuntu-de ... -allavvio/
marco91
Full Member
Full Member
 
Messaggi: 149
Iscritto il: 06/12/2015, 12:02
Località: imola

Re: avvio automatico script.sh

Messaggioda Aki » 22/07/2018, 12:45

marco91 ha scritto:quella guida l'avevo già provata prima di aprire la domanda, ma non ci sono riuscito.

Scrivere "non ci sono riuscito" non è sufficiente ad aiutarti: per poterti aiutare sarebbe utile che dettagliassi cosa hai fatto in modo da renderlo perfettamente riproducibile. Ti suggerisco di far tesoro di questo suggerimento per questa e per tutti i tuoi futuri quesiti e per le discussioni che, finora, hai aperto e hai lasciato eventualmente aperte.
Aki
Global Moderator
Global Moderator
 
Messaggi: 7993
Iscritto il: 27/12/2007, 16:59

Re: avvio automatico script.sh

Messaggioda marco91 » 22/07/2018, 20:55

ok.
spiego come ho fatto.
Ho creato uno script .sh con editor di testo e, a monte della mia personalizzazione di iptables, ho inserito "#!/bin/bash" con "exit" finale.
Ho dato i permessi chmod 775 per "consentire l'esecuzione del file come programma".
Con Debian Jessie utilizzavo rc.local e riportavo la locuzione del mio script prima di "ext0".
In Debian Strech, rc.local non possiede la medesima configurazione come Jessie per impostare lo script all'avvio: ho provato a salvare il riporto dello script, ma nulla.
Come ultimo tentativo ho utilizzato anche questa guida (http://www.soluzionilinux.com/ubuntu-de ... -allavvio/), ma non ho avuto risultati sperati.

il mio script bash inizia con "#!/bin/bash" e termina con "exit" e l'ho salvato con "nome-script".sh
marco91
Full Member
Full Member
 
Messaggi: 149
Iscritto il: 06/12/2015, 12:02
Località: imola

Re: avvio automatico script.sh

Messaggioda Aki » 23/07/2018, 21:45

Puoi fornire l'output completo dei seguenti comandi impartiti come utente root:
Codice: Seleziona tutto
script log.txt
systemctl status rc-local
cat /etc/rc.local
ls -la /etc/rc.local
exit

Quindi, per cortesia, fornisci il contenuto completo del file log.txt inserendolo nel testo di un successivo messaggio usando i tag CODE.
Aki
Global Moderator
Global Moderator
 
Messaggi: 7993
Iscritto il: 27/12/2007, 16:59

Re: avvio automatico script.sh

Messaggioda marco91 » 23/07/2018, 22:40

Script started on lun 23 lug 2018 23:29:11 CEST
root@marco:~# systemctl status rc-local
[?1h=
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: 
Drop-In: /lib/systemd/system/rc-local.service.d
└─debian.conf
Active: inactive (dead)
lines 1-5/5 (END)

lines 1-5/5 (END)
 ^X^X
[?1l>
root@marco:~# cat /etc/rc.local
cat: /etc/rc.local: File o directory non esistente
root@marco:~# ls -la /etc/rc.local
ls: impossibile accedere a '/etc/rc.local': File o directory non esistente
root@marco:~# exit
exit

Script done on lun 23 lug 2018 23:29:43 CEST
marco91
Full Member
Full Member
 
Messaggi: 149
Iscritto il: 06/12/2015, 12:02
Località: imola

Re: avvio automatico script.sh

Messaggioda marco91 » 23/07/2018, 23:24

Chiedo un piccolo piacere: se siete su Debian 9, potreste crearvi uno script e avviarlo in automatico all'avvio ?
Sarei curioso se sia un problema generalizzato.
Vi riporto il mio script di iptables, affichè possiate provare come sto facendo io: se riuscite, è più facile darmi insegnamenti e togliermi i dubbi
Sareste d'accordo di creavi uno script con la mia configurazione di iptables ?
Grazie.

#! /bin/bash

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 47 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 47 -j ACCEPT

exit
marco91
Full Member
Full Member
 
Messaggi: 149
Iscritto il: 06/12/2015, 12:02
Località: imola

Re: avvio automatico script.sh

Messaggioda Aki » 24/07/2018, 5:05

Dal log che hai inviato risulta:
marco91 ha scritto:
Codice: Seleziona tutto
rc-local.service - /etc/rc.local Compatibility
   Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset:
  Drop-In: /lib/systemd/system/rc-local.service.d
           └─debian.conf
   Active: inactive (dead)

Il servizio che si occupa di avviare /etc/rc.local è inattivo (dead).

Sempre dal log che hai inviato, risulta:
marco91 ha scritto:
Codice: Seleziona tutto
root@marco:~# cat /etc/rc.local
cat: /etc/rc.local: File o directory non esistente
root@marco:~# ls -la /etc/rc.local
ls: impossibile accedere a '/etc/rc.local': File o directory non esistente


Da tale log si evince che il file /etc/rc.local (che dovrebbe essere avviato automaticamente all'avvio del sistema operativo) non è presente sul tuo computer. E' dall'interno di questo file (mancante, nel tuo caso) che dovrebbe essere avviato lo script che intendi avviare.

Ad esempio, questo è quanto risulta su installazione di Debian Stretch a cui ho accesso con i comandi che ti ho suggerito:
Codice: Seleziona tutto
$ systemctl status rc-local
● rc-local.service - /etc/rc.local Compatibility
   Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset:
  Drop-In: /lib/systemd/system/rc-local.service.d
           └─debian.conf
   Active: active (exited) since Tue 2018-07-24 05:18:27 CEST; 8min ago
  Process: 824 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 4915)
   CGroup: /system.slice/rc-local.service

$ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

Come vedi, l'output di esempio che ti ho inviato è molto diverso da quello che hai inviato.

Ho il sospetto che hai pasticciato con il tuo sistema, cancellando il file /etc/rc.local (dall'interno del quale puoi richiamare lo script che ti interessa avviare) e, forse, potresti aver modificato qualcosa nel servizio rc-local.service. Puoi inviare l'output dei seguenti comandi, contenuto nel file log.txt:
Codice: Seleziona tutto
script log.txt
ls -l /sbin/init
uname -a
lsb_release -a
cat /lib/systemd/system/rc-local.service
systemctl status rc-local
journalctl -u network.target
journalcrl -u rc-local.service
systemd-analyze critical-chain rc-local.service
exit

In ogni caso, sarebbe utile che fornissi un log completo relativo alla Tua installazione, per capire se ci sono altre anomalie o errori di configurazione collegati a quanto stai riferendo.
Aki
Global Moderator
Global Moderator
 
Messaggi: 7993
Iscritto il: 27/12/2007, 16:59

Re: avvio automatico script.sh

Messaggioda marco91 » 24/07/2018, 10:18

Ci sono riuscito !
Spiego come ho fatto: ho seguito questa guida e gli script riportati sono funzionanti al riavvio del sistema:
https://blog.smsoft.it/2017/10/03/debia ... -rc-local/

Scusate, e grazie di tutto

Riporto la soluzione affinchè tutti possano leggere velocemente il ripristino di rc.local in Debian Strech.

nano /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

Salvare il documento e successivamente dare i permessi di esecuzione della directory:

chmod +x /etc/rc.local
systemctl start rc-local
systemctl status rc-local
marco91
Full Member
Full Member
 
Messaggi: 149
Iscritto il: 06/12/2015, 12:02
Località: imola

Re: [RISOLTO] ripristino rc.local in Debian Strech

Messaggioda Aki » 24/07/2018, 11:30

Al di là delle istruzioni, hai compreso la causa del malfunzionamento ed in che modo le istruzioni hanno permesso di superarlo ?
Aki
Global Moderator
Global Moderator
 
Messaggi: 7993
Iscritto il: 27/12/2007, 16:59

Re: [RISOLTO] ripristino rc.local in Debian Strech

Messaggioda marco91 » 24/07/2018, 14:21

si, ho compreso la causa del malfunzionamento.
La directory rc.local non è configurata in default in Debian Strech, ma è possibile aggiungerla e renderla operativa seguendo le istruzioni che ho riportato.
Non so il motivo per cui non era abilitata di default, ma è possibile con la guida che ho postato.
Avevo provato a rendere operativo lo script da /etc/init.d, purtoppo non ci sono riuscito.
Forse anche la dire directory "init.d" necessiti la configurazione dei permessi, ma risolsi l'avvio automatico con rc.local e non ho approfondito la questione per "init.d"
marco91
Full Member
Full Member
 
Messaggi: 149
Iscritto il: 06/12/2015, 12:02
Località: imola

Re: [RISOLTO] ripristino rc.local in Debian Strech

Messaggioda Selky » 24/07/2018, 15:07

marco91 ha scritto:Non so il motivo per cui non era abilitata di default...

Con una breve ricerca all'interno del forum avresti trovato informazioni utili viewtopic.php?f=15&t=53754#p209999
Selky
wiki member
wiki member
 
Messaggi: 1417
Iscritto il: 30/12/2011, 1:00


Torna a Generale

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti