#1 Le 25/05/2025, à 15:25
- ujiko
[Résolu]Comment lancer un script au démarrage qui soit lancé par root?
J"ai un script qui nécessite sudo, je l'ai mis comme service et je souhaiterais qu'il se lance automatiquement avec l’accès root., comment faire que ce service ait les droits root?
Dernière modification par ujiko (Le 25/05/2025, à 17:54)
Hors ligne
#2 Le 25/05/2025, à 15:38
- Watael
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
les services sont exécutés par root.
si ton script est exécuté par un service, il l'est donc par root, pas besoin de sudo dans le script.
essaye avec ce petit script
#!/bin/sh
whoami
passe root (sudo -i), et exécute le script.
mais, c'est le même script inutile dont on a parlé sur « j'ai un doute sur cron » ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 25/05/2025, à 15:44
- ujiko
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
les services sont exécutés par root.
si ton script est exécuté par un service, il l'est donc par root, pas besoin de sudo dans le script.
Le service est enregistré, comment être sûr qu'il sera lancé au démarrage?
[Unit]
Description= fixe ipv6
[Service]
Type=simple
User=root
Group=root
UMask=007
ExecStart=/home/gilles/ip.sh
[Install]
WantedBy=multi-user.target
Hors ligne
#4 Le 25/05/2025, à 15:57
- O_20_100_O
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
Bonjour,
Avec un timer systemd qui lance ton service au moment voulu.
https://documentation.suse.com/smart/sy … index.html
Dernière modification par O_20_100_O (Le 25/05/2025, à 15:59)
La vie, pour moi elle est magnifique, pourquoi tu te la compliques ? (Zanini)
Hors ligne
#5 Le 25/05/2025, à 16:07
- Watael
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
Le service est enregistré, comment être sûr qu'il sera lancé au démarrage?
s'il est correctement configuré, un service est exécuté au démarrage. C'est leur but premier : démarrer les services quand la machine démarre !
les timer permettent une exécution planifiée, je ne pense pas que ce soit utile pour un service exécuté au démarrage.
MAIS, je le dis encore, ton script n'est pas indispensable, ce n'est pas ainsi qu'on configure une adresse IP(v6) fixe.
Dernière modification par Watael (Le 25/05/2025, à 16:08)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 25/05/2025, à 16:10
- ujiko
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
Je viens de rebooter et mon service n'a pas été exécuté, je viens de lui ajouter un timer pour voir.
Hors ligne
#7 Le 25/05/2025, à 16:16
- Watael
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
tu as activé (enable) le service ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#8 Le 25/05/2025, à 16:16
- ujiko
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
oui
Hors ligne
#9 Le 25/05/2025, à 16:33
- Watael
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
qu'en dit le status ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#10 Le 25/05/2025, à 16:35
- ujiko
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
service fixv6 status
○ fixv6.service - fixe ipv6
Loaded: loaded (/etc/systemd/system/fixv6.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Sun 2025-05-25 16:34:15 CEST; 38s ago
Process: 6336 ExecStart=/home/gilles/ip.sh (code=exited, status=0/SUCCESS)
Main PID: 6336 (code=exited, status=0/SUCCESS)
CPU: 3ms
mai 25 16:34:15 kohaku.fr systemd[1]: Started fixe ipv6.
mai 25 16:34:15 kohaku.fr ip.sh[6337]: net.ipv6.conf.enp42s0.accept_ra = 1
mai 25 16:34:15 kohaku.fr systemd[1]: fixv6.service: Deactivated successfully.
Hors ligne
#11 Le 25/05/2025, à 16:36
- Watael
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
tu peux ajouter ces commandes au début de ton script
set -x
exec 2>/tmp/tonScript.log
et nous donner le contenu du fichier /tmp/tonScript.log ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#12 Le 25/05/2025, à 16:39
- ujiko
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
+ sysctl -w net.ipv6.conf.enp42s0.accept_ra=1
+ ip token set 2a01:e0a:836:3020:91a2:24e6:fc90:4b70 dev enp42s0
à chaque fois que j'appelle le service il me réclame le pass root
Dernière modification par ujiko (Le 25/05/2025, à 16:40)
Hors ligne
#13 Le 25/05/2025, à 16:41
- Watael
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
en tant qu'utilisateur, c'est normal.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#14 Le 25/05/2025, à 16:43
- ujiko
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
Mais alors je ne comprend pas mon service est régulièrement enregistré, pourquoi ne s’exécute pas au démarrage?
Hors ligne
#15 Le 25/05/2025, à 16:48
- geole
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
service fixv6 status ○ fixv6.service - fixe ipv6 Loaded: loaded (/etc/systemd/system/fixv6.service; enabled; vendor preset: enabled) Active: inactive (dead) since Sun 2025-05-25 16:34:15 CEST; 38s ago Process: 6336 ExecStart=/home/gilles/ip.sh (code=exited, status=0/SUCCESS) Main PID: 6336 (code=exited, status=0/SUCCESS) CPU: 3ms mai 25 16:34:15 kohaku.fr systemd[1]: Started fixe ipv6. mai 25 16:34:15 kohaku.fr ip.sh[6337]: net.ipv6.conf.enp42s0.accept_ra = 1 mai 25 16:34:15 kohaku.fr systemd[1]: fixv6.service: Deactivated successfully.
Bonjour
Ce service a bien été lancé et exécuté à 16 heures 34 minutes et 15 secondes Mais c'est peut-être toi qui l'a lancé
que donne
systemctl cat fixv6
Dernière modification par geole (Le 25/05/2025, à 16:50)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#16 Le 25/05/2025, à 16:51
- ujiko
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
/etc/systemd/system/fixv6.service
[Unit]
Description= fixe ipv6
[Service]
Type=simple
User=root
Group=root
UMask=007
ExecStart=/home/gilles/ip.sh
[Install]
WantedBy=multi-user.target
Hors ligne
#17 Le 25/05/2025, à 16:56
- geole
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
J'ai demandé
systemctl cat fixv6
et pas
cat /etc/systemd/system/fixv6.service
car cela peut être différent si le fichier a été modifié et que le service n'a pas été arrêté et reloadé
Dernière modification par geole (Le 25/05/2025, à 16:57)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#18 Le 25/05/2025, à 17:01
- ujiko
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
systemctl cat fixv6
# /etc/systemd/system/fixv6.service
[Unit]
Description= fixe ipv6
[Service]
Type=simple
User=root
Group=root
UMask=007
ExecStart=/home/gilles/ip.sh
[Install]
WantedBy=multi-user.target
gilles@kohaku:~$ service fixv6 status
○ fixv6.service - fixe ipv6
Loaded: loaded (/etc/systemd/system/fixv6.service; enabled; vendor preset:>
Active: inactive (dead) since Sun 2025-05-25 16:57:07 CEST; 1min 46s ago
Main PID: 832 (code=exited, status=0/SUCCESS)
CPU: 4ms
mai 25 16:57:09 kohaku.fr ip.sh[832]: + exec
mai 25 16:57:09 kohaku.fr ip.sh[848]: net.ipv6.conf.enp42s0.accept_ra = 1
mai 25 16:57:07 kohaku.fr systemd[1]: Started fixe ipv6.
mai 25 16:57:07 kohaku.fr systemd[1]: fixv6.service: Deactivated successfully.
gilles@kohaku:~$ ping mail.kohaku.fr
PING mail.kohaku.fr(2a01:e0a:836:3020:91a2:24e6:fc90:4b70 (2a01:e0a:836:3020:91a2:24e6:fc90:4b70)) 56 data bytes
From kohaku.fr (2a01:e0a:836:3020:47d6:a268:95c7:a090) icmp_seq=1 Destination unreachable: Address unreachable
From kohaku.fr (2a01:e0a:836:3020:47d6:a268:95c7:a090) icmp_seq=2 Destination unreachable: Address unreachable
From kohaku.fr (2a01:e0a:836:3020:47d6:a268:95c7:a090) icmp_seq=3 Destination unreachable: Address unreachable
From kohaku.fr (2a01:e0a:836:3020:47d6:a268:95c7:a090) icmp_seq=4 Destination unreachable: Address unreachable
From kohaku.fr (2a01:e0a:836:3020:47d6:a268:95c7:a090) icmp_seq=5 Destination unreachable: Address unreachable
From kohaku.fr (2a01:e0a:836:3020:47d6:a268:95c7:a090) icmp_seq=6 Destination unreachable: Address unreachable
^C
--- mail.kohaku.fr ping statistics ---
7 packets transmitted, 0 received, +6 errors, 100% packet loss, time 6246ms
Hors ligne
#19 Le 25/05/2025, à 17:01
- iznobe
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
Dans l ' autre discussion , on voit qu ' il y a autre chose qui fait que l' IPV6 n ' est pas fixe ( cas par defaut ) , mais je ne sais pas ce que c' est .
voir : https://forum.ubuntu-fr.org/viewtopic.php?id=2091282 .
plutot que de creer des scripts / services , il faudrait trouver ce qui fait en sorte sur sa machine de rendre l' IPV6 variable ...
retour COMPLET et utilisable de commande | script montage partitions
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#20 Le 25/05/2025, à 17:53
- ujiko
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
Bonjour,
Avec un timer systemd qui lance ton service au moment voulu.
https://documentation.suse.com/smart/sy … index.html
MERCI
Apparemment lors du lancement du script au démarrage, un évènement se produit qui sabote la fixation de l'IPV6.
En insérant un Timer OnBootSec=1min mon problème est résolu, sûrement qu'un autre service sabote le mien.
Après 1 minute de boot mon script démarre et le problème est résolu.
Hors ligne
#21 Le 25/05/2025, à 18:13
- geole
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
Apparemment lors du lancement du script au démarrage, un évènement se produit qui sabote la fixation de l'IPV6.
En insérant un Timer OnBootSec=1min mon problème est résolu, sûrement qu'un autre service sabote le mien.
Après 1 minute de boot mon script démarre et le problème est résolu.
Vu ce que tu constates, il est quasiment certain qu'il se lance avant que le réseau soit fini d'initialiser..
Voici une autre implémentation (attention le nom du noeud n'est pas le même)
cat <<"EOF" >/etc/systemd/system/fixv6.service
[Unit]
Description= fixe ipv6
[Service]
Type=simple
ExecStartPre=echo Début du script ipv6
ExecStartPre=sleep 1m
ExecStart=sysctl -w net.ipv6.conf.enp1s0.accept_ra=1
ExecStartPost=ip token set 2a01:e0a:836:3020:91a2:24e6:fc90:4b70 dev enp1s0
ExecStartPost=echo fin du script ipv6
[Install]
WantedBy=multi-user.target
EOF
systemctl stop fixv6
systemctl daemon-reload
systemctl enable fixv6
systemctl start fixv6
systemctl status fixv6
journalctl -b -g "script ipv6"
La trace
a@b:~$ journalctl -b -g "script ipv6"
mai 25 17:55:26 b echo[1348]: Début du script ipv6
mai 25 17:55:28 b echo[1436]: fin du script ipv6
mai 25 18:05:16 b echo[5404]: Début du script ipv6
mai 25 18:06:17 b echo[5418]: fin du script ipv6
a@b:~$ journalctl -b --no-pager -g enp1s0.IPv6
mai 25 17:55:36 b avahi-daemon[1344]: Joining mDNS multicast group on interface enp1s0.IPv6 with address fe80::27d:b032:3a60:7e5f.
mai 25 17:55:36 b avahi-daemon[1344]: New relevant interface enp1s0.IPv6 for mDNS.
mai 25 17:55:37 b avahi-daemon[1344]: Leaving mDNS multicast group on interface enp1s0.IPv6 with address fe80::27d:b032:3a60:7e5f.
mai 25 17:55:37 b avahi-daemon[1344]: Joining mDNS multicast group on interface enp1s0.IPv6 with address 2a01:e0a:66:35e0:4878:eae1:5ef0:79a6.
Dernière modification par geole (Le 25/05/2025, à 18:37)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#22 Le 25/05/2025, à 20:36
- Watael
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
c'est une mauvaise solution.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#23 Le 25/05/2025, à 22:22
- geole
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
Bonsoir Watael.
Pas très bien compris ta réponse.
Est-ce pour dire que la solution de réparation ne se justifie pas?
Est-ce pour dire que les deux commandes echo ne se justifient pas? Cependant c'est pratique pour un suivi de fonctionnement vu leur coût d'exécution.
Est-ce pour dire qu'il faut utiliser une autre contrainte de démarrage afin de supprimer l'attente?
Dernière modification par geole (Le 25/05/2025, à 22:35)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#24 Le 25/05/2025, à 23:20
- Watael
Re : [Résolu]Comment lancer un script au démarrage qui soit lancé par root?
ah, non. excuse-moi, je n'ai pas lu ta réponse.
je parle de la démarche de ujiko, qui consiste à faire exécuter un script par un service au démarrage, auquel est adjoint un timer (parce que le service est mal configuré), pour répéter une chose (fixer l'IPv6) qui devrait être configurée une fois pour toutes dans un fichier de configuration (sous /etc/netplan ou /etc/networking, ou je-ne-sais-quoi).
cet empilement obstiné de "solutions" au lieu d'aller directement où se règle le problème, c'est comme utiliser un cornet acoustique avec des prothèses auditives au lieu de monter le volume de la télé.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne