logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 05-11-2021 18:02:45

VBrice
Membre
Inscription : 04-10-2021

[Resolu] bash root startup

Bonjour,

Voila, j'ai fait un script bash qui nécessite d'être lancer à chaque démarrage en tant que root.

En tant que utilisateur, non root, je gére les "applications au démarrage " avec l'utilitaire de mate du même nom. Ce qui ne donne pas les droit root au script puisque c'est la session utilisateur.

(un "@reboot /home/utilisateur/Script/script.sh" dans crontab ne le fait pas lancer)

Mon script doit être placer dans un dossier spécifique j'imagine?

Dernière modification par VBrice (06-11-2021 16:17:09)

Hors ligne

#2 05-11-2021 18:23:52

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : [Resolu] bash root startup

La méthode avec le crontab est correcte. À condition que tu définisses bien ça comme une tâche système (sous /etc/cron.d/) et pas dans le crontab de ton utilisateur, sinon ce ne sera pas lancé par root.

Si tu regardes les fichiers existants sous /etc/cron.d/, je pense que tu comprendras rapidement comment ajouter le tien wink

Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#3 05-11-2021 18:36:55

VBrice
Membre
Inscription : 04-10-2021

Re : [Resolu] bash root startup

RE-bonjour,

En fait le script se lancer au démarrage, comme convenu avec  crontab, mais il se lancer avant la session,
du coup, un petit

sleep 30

pour temporiser à résolut ce petit problème.

De plus, dans mon script, mon fichier log était créer dans le même répertoire que celui de mon script (vu que je lancé le script depuis le terminal dans le bon dossier).
Avec crontab, je ne voyais  pas mon fichier log (car je ne sais pas depuis quel répertoire est vraiment lancé mon script avec crontab). En ajoutant le chemin absolu du fichier log dans mon script, il fut bien créé au bon endroit.

Du coup tous est rentré dans l'ordre smile

Merci en tous cas de m'avoir répondu smile

Dernière modification par VBrice (05-11-2021 18:45:04)

Hors ligne

#4 05-11-2021 19:01:36

saitama-san
Membre
Inscription : 28-07-2019

Re : [Resolu] bash root startup

sinon, gérer les droits avec sudo

Hors ligne

#5 05-11-2021 19:42:45

raleur
Membre
Inscription : 03-10-2014

Re : [Resolu] bash root startup

vv222 a écrit :

La méthode avec le crontab est correcte.


Non. Exécuter automatiquement en tant que root un script présent dans un répertoire utilisateur est une grosse faille de sécurité.

VBrice a écrit :

En fait le script se lancer au démarrage, comme convenu avec  crontab, mais il se lancer avant la session


Evidemment. Le démarrage, c'est avant l'ouverture de session.

VBrice a écrit :

"sleep 30" pour temporiser à résolut ce petit problème.


Non. Ça ne marche pas si l'ouverture de session ne se fait pas dans les 30 secondes après le démarrage. Si tu veux lancer un script en tant que root à l'ouverture de session, une tâche cron n'est pas la bonne méthode. Il faut utiliser un mécanisme d'élévation de privilège sécurisée (par exemple sudo sans mot de passe pour ce script et lui seul) et ne pas mettre le script dans un endroit où un utilisateur normal peut écrire !

Dernière modification par raleur (05-11-2021 19:43:36)


Il vaut mieux montrer que raconter.

Hors ligne

#6 05-11-2021 20:47:00

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : [Resolu] bash root startup

raleur a écrit :

vv222 a écrit :

La méthode avec le crontab est correcte.


Non. Exécuter automatiquement en tant que root un script présent dans un répertoire utilisateur est une grosse faille de sécurité.


Je ne répondais ici qu’à la demande initiale, pas à sa pertinence qui mérite en effet d’être discutée.


Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#7 05-11-2021 22:02:58

VBrice
Membre
Inscription : 04-10-2021

Re : [Resolu] bash root startup

raleur a écrit :

Ça ne marche pas si l'ouverture de session ne se fait pas dans les 30 secondes après le démarrage


Tout à fait d'accord.

raleur a écrit :

Il faut utiliser un mécanisme d'élévation de privilège sécurisée


Merci de m'informer des bonnes pratiques, c'est toujours bon d'en apprendre un peu plus.
Il faut éditer le fichier des sudoer?

Et si on gère les droits du fichier en lecture seul ça devrait suffire peut-être?

Dernière modification par VBrice (05-11-2021 22:33:32)

Hors ligne

#8 05-11-2021 23:12:50

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : [Resolu] bash root startup

Une bonne pratique à mon avis pour un script à destination exclusive de root c’est de le placer dans /usr/local/sbin, qui est un chemin dédié aux commandes spécifiques à la machine locale et au compte root.

Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#9 05-11-2021 23:12:51

raleur
Membre
Inscription : 03-10-2014

Re : [Resolu] bash root startup

VBrice a écrit :

Il faut éditer le fichier des sudoer?


Pour faire ce que tu demandes avec sudo, oui. Il faut le configurer pour que ton utilisateur (ou n'importe lequel) puisse exécuter le script et uniquement lui en root sans demande de mot de passe. Ensuite tu pourras configurer ta session pour exécuter le script avec sudo à l'ouverture.

VBrice a écrit :

Et si on gère les droits du fichier en lecture seul ça devrait suffire peut-être?


Sûrement pas. Tout utilisateur qui peut écrire dans le répertoire parent peut supprimer le fichier et le remplacer même s'il n'a pas la permission de modifier le fichier lui-même (sauf si le répertoire a le "sticky bit" comme /tmp, mais un répertoire utilisateur ne l'a pas par défaut).

Dernière modification par raleur (05-11-2021 23:14:27)


Il vaut mieux montrer que raconter.

Hors ligne

#10 05-11-2021 23:14:15

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : [Resolu] bash root startup

raleur a écrit :

Tout utilisateur qui peut écrire dans le répertoire parent peut supprimer le fichier et le remplacer même s'il n'a pas la permission de modifier le fichier lui-même (sauf si le répertoire a le "sticky bit" comme /tmp, mais un répertoire utilisateur ne l'a pas par défaut).



On vient justement d’en avoir une démonstration ici : Fichier root dans $HOME/sous-dossier


Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#11 06-11-2021 13:05:28

VBrice
Membre
Inscription : 04-10-2021

Re : [Resolu] bash root startup

Re-bonjour,

Donc voilà, en suivant vos remarque:

- j'ai déplacer mon script dans "/usr/local/sbin",
- j'ai changé les permissions avec un

chmod 700 /usr/local/sbin/monscript

en tant que root pour retirer les droits aux utilisateurs et le rendre exécutable.
- modifié crontab pour lancer le fichier "@reboot /usr/local/sbin/monscript"

Est-ce suffisant niveau sécurité et bonne pratique?

Dernière modification par VBrice (06-11-2021 13:24:48)

Hors ligne

#12 06-11-2021 14:05:02

vv222
Administrateur
Lieu : Bretagne
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : [Resolu] bash root startup

Un dernier point à vérifier est le propriétaire du script, qui devrait être root.

Tu peux t’en assurer avec :

chown -c root:root /usr/local/sbin/monscript


Le -c est uniquement là pour que les éventuelles modifications soient affichées dans ta console. Si rien ne s’affiche c’est que le propriétaire était déjà root.


Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#13 06-11-2021 16:16:58

VBrice
Membre
Inscription : 04-10-2021

Re : [Resolu] bash root startup

Oui, le propriétaire est déjà root car j'ai créer le fichier avec

touch monscript

directement. Rien n'est accessible depuis la session utilisateur (il ne peut pas visualiser le contenu du script ou l’exécuter)

Encore merci à tous smile

Dernière modification par VBrice (06-11-2021 16:51:09)

Hors ligne

Pied de page des forums