Re: Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-20 Par sujet Bernard Bass

L'utilisateur gestionnaire est créé.



Identifier l'utilisateur qui fait tourner le service cron :
ps -Af | grep cron
root 890   1  0 20:21 ?    00:00:00 /usr/sbin/cron -f -P

sudo systemctl stop cron

cd /usr/sbin/
ls -la
-rwxr-xr-x  1 root root 51792 mars  23  2022 cron

sudo bash
*chown gestionnaire:gestionnaire cron*
cd /usr/sbin/
ls -la
-rwxr-xr-x  1 *root gestionnaire*   51792 mars  23  2022 cron

sudo systemctl restart cron

ps -Af | grep cron
*root*    5315   1  0 20:38 ?    00:00:00 /usr/sbin/cron -f -P


C'est toujours l'utilisateur *root* qui *fait tourner le service cron*.
L'ID de l'utilisateur gestionnaire avec l'option d'*ID utilisateur non 
unique* est *0 (root)*.




Le 20/02/2024 à 12:26, Bernard Bass a écrit :
La question initiale : Comment remplacer l'utilisateur root pour 
utiliser le service cron ?


Devrait plutôt être : *Comment lancer le service cron/crontab avec 
l'utilisateur gestionnaire (root) ?*


J'ai créé l'utilisateur gestionnaire de la sorte :

Créer un utilisateur gestionnaire pour remplacer les actions de 
l'utilisateur root, pour lancer toutes les tâches cron.


Consulter les groupes de l'utilisateur root :
sudo bash
id
uid=0(root) gid=0(root) groupes=0(root)

groups
root

Créer l'utilisateur gestionnaire :
*sudo adduser gestionnaire*

Ajouter l'utilisateur gestionnaire au groupe des administrateurs 
système (root) à l'aide de la commande usermod :

# usermod -aG sudo gestionnaire
*sudo usermod -aG root gestionnaire*

Ajouter les droits root à l'utilisateur gestionnaire avec visudo :
*sudo visudo
root    ALL=(ALL:ALL) ALL
gestionnaire    ALL=(ALL:ALL) ALL
*
sudo bash
cat /etc/passwd | grep -i gestionnaire
gestionnaire:x:1001:1001:,,,:/home/gestionnaire:/bin/bash

sudo bash
Donner à l'utilisateur gestionnaire les privilèges root sans qu'il 
n'ait a utiliser sudo :
Changer l'ID de l'utilisateur gestionnaire avec l'option d'ID 
utilisateur non unique :

*usermod -o -u 0 gestionnaire*

Utiliser su pour s'identifier avec l'utilisateur gestionnaire et 
devenir root :

$ *su gestionnaire*
Mot de passe :
*root*@system:/home/utilisateur-courant#

cat /etc/passwd | grep -i gestionnaire
gestionnaire:x:0:1001:,,,:/home/gestionnaire:/bin/bash

La ligne peut être réécrite de la façon suivante :
sudo nano /etc/passwd
gestionnaire:x:0:1001:Gestionnaire:/home/gestionnaire:/bin/bash


Je n'ai pas trouvé comment relancer le service cron avec cet autre 
utilisateur gestionnaire.



*La solution fonctionnelle pour désactiver root semble être la 
suivante :*



1)
sudo passwd root # Créer un mot de passe.
sudo passwd -d root # Supprimer le mot de passe.


2)
* Désactiver l'utilisateur root à partir du shell.
Le moyen le plus simple de désactiver la connexion de l'utilisateur 
root est de changer son shell du répertoire /bin/bash à 
/sbin/nologin, dans le fichier /etc/passwd.


sudo nano /etc/passwd
root:x:0:0:root:/root:/sbin/nologin


3)
sudo passwd -S root
root NP 02/18/2024 0 9 7 -1 # L'utilisateur root utilise no password.


4)
su root
This account is currently not available.


5)
On ne peut donc pas accéder à root directement.
Le système cron avec la crontab -e root continue de fonctionner.
Le user root semble faire son travail sans erreur.



J'aurais préféré créer un utilisateur gestionnaire pour remplacer les 
actions de l'utilisateur root, capable de lancer toutes les tâches cron.

Si quelqu'un sait expliquer la méthode.
Merci.


Re: Re : Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-20 Par sujet Christophe Maquaire
Le mardi 20 février 2024 à 11:19 +0100, Christophe Maquaire a écrit :
> 
> 
> Y'a même mieux ou pire, c'est selon:
> 
> https://www.freedesktop.org/software/systemd/man/latest/systemd.timer.html

Je continue le prosélytisme:
In French et illustré par
l'exemple:https://wiki.archlinux.org/title/Systemd_(Fran%C3%A7ais)/Timers_(Fran%C3%A7ais)

Christophe



Re: Re : Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-20 Par sujet Christophe Maquaire
Le mardi 20 février 2024 à 10:00 +0100, NoSpam a écrit :
> Bonjour
> 
> Le 20/02/2024 à 05:54, k6dedi...@free.fr a écrit :
> > Bonjour,
> > Je découvre ce fil de discussion.
> > Je ne comprends pas que l'on puisse encore travailler avec CRON.
> > Alors que ANACRON est indépendant de la période de fonctionnement
> > du PC.
> Si on se place d'un point de vue poste de travail. Pour les serveurs,
> aucun intérêt !
> 
Y'a même mieux ou pire, c'est selon:

https://www.freedesktop.org/software/systemd/man/latest/systemd.timer.html

Comme debian est passé à systemd, autant en profiter ou boire le calice
jusqu'à la lie, c'est encore selon.

Christophe



Re: Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-20 Par sujet Bernard Bass
La question initiale : Comment remplacer l'utilisateur root pour 
utiliser le service cron ?


Devrait plutôt être : *Comment lancer le service cron/crontab avec 
l'utilisateur gestionnaire (root) ?*


J'ai créé l'utilisateur gestionnaire de la sorte :

Créer un utilisateur gestionnaire pour remplacer les actions de 
l'utilisateur root, pour lancer toutes les tâches cron.


Consulter les groupes de l'utilisateur root :
sudo bash
id
uid=0(root) gid=0(root) groupes=0(root)

groups
root

Créer l'utilisateur gestionnaire :
*sudo adduser gestionnaire*

Ajouter l'utilisateur gestionnaire au groupe des administrateurs système 
(root) à l'aide de la commande usermod :

# usermod -aG sudo gestionnaire
*sudo usermod -aG root gestionnaire*

Ajouter les droits root à l'utilisateur gestionnaire avec visudo :
*sudo visudo
root    ALL=(ALL:ALL) ALL
gestionnaire    ALL=(ALL:ALL) ALL
*
sudo bash
cat /etc/passwd | grep -i gestionnaire
gestionnaire:x:1001:1001:,,,:/home/gestionnaire:/bin/bash

sudo bash
Donner à l'utilisateur gestionnaire les privilèges root sans qu'il n'ait 
a utiliser sudo :
Changer l'ID de l'utilisateur gestionnaire avec l'option d'ID 
utilisateur non unique :

*usermod -o -u 0 gestionnaire*

Utiliser su pour s'identifier avec l'utilisateur gestionnaire et devenir 
root :

$ *su gestionnaire*
Mot de passe :
*root*@system:/home/utilisateur-courant#

cat /etc/passwd | grep -i gestionnaire
gestionnaire:x:0:1001:,,,:/home/gestionnaire:/bin/bash

La ligne peut être réécrite de la façon suivante :
sudo nano /etc/passwd
gestionnaire:x:0:1001:Gestionnaire:/home/gestionnaire:/bin/bash


Je n'ai pas trouvé comment relancer le service cron avec cet autre 
utilisateur gestionnaire.




*La solution fonctionnelle pour désactiver root semble être la suivante :*


1)
sudo passwd root # Créer un mot de passe.
sudo passwd -d root # Supprimer le mot de passe.


2)
* Désactiver l'utilisateur root à partir du shell.
Le moyen le plus simple de désactiver la connexion de l'utilisateur 
root est de changer son shell du répertoire /bin/bash à /sbin/nologin, 
dans le fichier /etc/passwd.


sudo nano /etc/passwd
root:x:0:0:root:/root:/sbin/nologin


3)
sudo passwd -S root
root NP 02/18/2024 0 9 7 -1 # L'utilisateur root utilise no password.


4)
su root
This account is currently not available.


5)
On ne peut donc pas accéder à root directement.
Le système cron avec la crontab -e root continue de fonctionner.
Le user root semble faire son travail sans erreur.



J'aurais préféré créer un utilisateur gestionnaire pour remplacer les 
actions de l'utilisateur root, capable de lancer toutes les tâches cron.

Si quelqu'un sait expliquer la méthode.
Merci.


Re: Re : Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-20 Par sujet NoSpam

Bonjour

Le 20/02/2024 à 05:54, k6dedi...@free.fr a écrit :

Bonjour,
Je découvre ce fil de discussion.
Je ne comprends pas que l'on puisse encore travailler avec CRON.
Alors que ANACRON est indépendant de la période de fonctionnement du PC.
Si on se place d'un point de vue poste de travail. Pour les serveurs, 
aucun intérêt !




Re : Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-19 Par sujet k6dedijon
Bonjour,
Je découvre ce fil de discussion.
Je ne comprends pas que l'on puisse encore travailler avec CRON.
Alors que ANACRON est indépendant de la période de fonctionnement du PC.

Peut-etre que vous pourriez trouver une piste de solution dans l'article de Léa 
Linux espliquant les fonctionalités de at, cron et anacron.
https://lea-linux.org/documentations/Programmation_de_travaux_avec_at_cron_anacron

Bon courage
Cassis


- Mail d'origine -
De: Bernard Bass 
À: Liste Debian 
Envoyé: Sun, 18 Feb 2024 00:32:25 +0100 (CET)
Objet: Comment remplacer l'utilisateur root pour utiliser le service cron ?

Bonjour,

Voilà ma question : Comment remplacer l'utilisateur root pour utiliser 
le service cron ?

##
##

Utiliser cron et crontab sur Debian 12.
Un utilisateur sudoer est créé pour utiliser sudo et administrer le système.
*L'utilisateur root a été désactivé sur le système Debian et le mot de 
passe est forcé pour expirer.*

Des erreurs s'affichent dans journalctl, les tâches cron de 
l'utilisateur root ne sont pas lancées :

*SERVEUR cron : Authentication failure
Password root of that user should be expried.*

Le compte utilisateur root est verrouillé et le mot de passe est forcé 
pour expirer, il ne peut être utilisé pour lancer des tâches cron.

*COMMENT CREER UN UTILISATEUR POUR REMPLACER ROOT ET UTILISER SA CRONTAB ?*

Créer un utilisateur pour remplacer root :
sudo adduser gestionnaire
sudo bash
echo "gestionnaire ALL=(ALL) ALL" >> /etc/sudoers
echo "gestionnaire ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

Ajouter gestionnaire au groupe cron :
gpasswd -a gestionnaire cron

Lorsque un utilisateur est ajouté au groupe cron, se déconnecter et se 
reconnecter pour rendre l'ajout au groupe effectif.

*Comment faire comprendre au système qu'il faut utiliser le nouvel 
utilisateur pour lancer les tâches cron du système ?*

*( la crontab de l'utilisateur sudoer, la crontab de l'utilisateur 
gestionnaire, les tâches cron.daily . , les tâches des services dans 
le dossier cron.d )
*

##
##






La recherche actuelle :

*( Les tâches cron.daily . , les tâches des services dans le dossier 
cron.d ne fonctionnent pas **" cron **: **Authentication failure " **)
*

##

Utiliser cron et crontab sur Debian 12.
Un utilisateur sudoer est créé pour utiliser sudo et administrer le système.

L'utilisateur root a été désactivé sur le système Debian et le mot de 
passe est forcé pour expirer.

Des erreurs s'affichent dans journalctl, les tâches cron de 
l'utilisateur root ne sont pas lancées.

##

sudo journalctl -p err
févr. 11 16:25:01 SERVEUR CRON[874565]: pam_unix(cron:account): account 
root has expired (account expired)
*févr. 11 16:25:01 SERVEUR cron[874565]: Authentication failure 
*
sudo[874537]: pam_unix(sudo:session): session closed for user root

Le compte utilisateur root est verrouillé et ne peut être utilisé pour 
lancer des tâches cron.
*Password root of that user should be expried. 
*

##

*COMMENT CREER UN UTILISATEUR ROOT POUR REMPLACER ROOT ET UTILISER SA 
CRONTAB ? *
Comment exécuter une commande exigeant un plus haut niveau de permission 
(root ou racine) ?


Créer un utilisateur pour remplacer root :
sudo adduser gestionnaire
sudo bash
echo "gestionnaire ALL=(ALL) ALL" >> /etc/sudoers
echo "gestionnaire ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

Ajouter gestionnaire au groupe cron :
gpasswd -a gestionnaire cron
Lorsque un utilisateur est ajouté au groupe cron, se déconnecter et se 
reconnecter pour rendre l'ajout au groupe effectif.

*Comment faire comprendre au système qu'il faut utiliser gestionnaire 
pour lancer les tâches cron ?*
...
...


##

sudo systemctl stop cron
sudo systemctl start cron
sudo systemctl restart cron

# Identifier les processus cron :
sudo systemctl status cron
# Arrêter un processus cron :
sudo kill PID


Re: Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-18 Par sujet Pierre Malard
Bonjour,

Franchement je ne comprends pas bien ces « modèles ». Soit avoir un login « 
super administrateur », root ou non, vous donne des bougons et, dans ce cas 
bloquez tout login direct acec un « x » dans le champ password du fichier 
/etc/shadow.  Une méthode plus propre :
$ sudo usermod -L root
Cela ajoute un « ! » devant le mot de passe haché.

Cela n’empêche pas un login « root » avec SSH par échange de clé. Mais il faut 
avoir, au préalable, ajouter ces clés publiques sur le compte root ce qui est 
difficile sans une connexion sur le serveur.

Si vous ne voulez pas de connexion SSH directe possible, interdisez le dans un 
complément de ssh_config dans /etc/ssh/sshd_config.d/TOTO.conf avec :
PermitRootLogin No
DenyUsers root@*
Par exemple (même si la première ligne devrait suffire…)

Pour ce qui est du login, vous en avez besoin pour administrer. Ce n’est donc 
pas une discussion.

À partir de là le seul moyen d’accéder aux droits « root » est de passer par un 
utilisateur sudoer pour lancer un « sudo commande » sans bloquer le système 
pour autant.

Si vous vous méfiez des éventuels utilisateurs sudoer vous pouvez limiter les 
commandes possibles pour eux dans la configuration de sudoer. Allez faire un 
tour à la fin de https://www.malekal.com/exemples-sudoers-configurer-sudo-linux/


> Le 18 févr. 2024 à 22:36, Bernard Bass  a écrit 
> :
> 
> Bonsoir,
>>> Puis-je savoir à quoi sert de désactiver le compte root si c'est pour 
>>> donner les pleins pouvoirs à un autre compte, en le dispensant de saisir 
>>> son mot de passe lorsqu'il utilise la commande sudo ?
>>> echo "gestionnaire ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
>>> 
>> 
>> J’ai du louper des épisodes car je ne vois nulle part dans les réponses 
>> faites une mention laissant entendre qu’il fallait « disposer 
>> [l’utilisateur] de saisir son mot de passe ». C’est, à mon sens, une très 
>> mauvaise pratique à  moins de limiter drastiquement les commandes laissées à 
>> cet usage.
>> 
> Effectivement.
> Je n'ai pas la méthode pour créer un utilisateur root.
> J'ai des notes pour créer un sudoer dans le groupe sudo.
> Je ne sais par contre pas s'il est possible de créer un utilisateur semblable 
> à l'utilisateur root.
> On m'avait surement déjà répondu, cela n'est probablement pas possible, ou, 
> compliqué, puisque c'est root (0) qui administre le système.
> 
> 
> 
> J'ai passé root en /sbin/nologin dans /etc/passwd ce qui empêche 
> l'utilisation de root, tout en permettant au système de fonctionner, sudo 
> crontab -e fonctionne normalement.
> 
> Je ne sais toujours pas créer un utilisateur gestionnaire capable de prendre 
> le rôle de root, pour faire fonctionner l'ensemble des services cron, sans 
> passer par des manipulations complexes.
> 
> Merci d'avoir répondu.
> 

--
Pierre Malard

   « La vérité ne triomphe jamais, mais ses ennemis finissent
toujours par mourir... »
   Max Placnk (1858-1947)
   |\  _,,,---,,_
   /,`.-'`'-.  ;-;;,_
  |,4-  ) )-,_. ,\ (  `'-'
 '---''(_/--'  `-'\_)   πr

perl -e '$_=q#: 3|\ 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-.  ;-;;,_:  |,A-  ) )-,_. ,\ 
(  `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"'  `-'"'"'\_): 
24πr::#;y#:#\n#;s#(\D)(\d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--



signature.asc
Description: Message signed with OpenPGP


Re: Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-18 Par sujet Bernard Bass

Bonsoir,


Puis-je savoir à quoi sert de désactiver le compte root si c'est pour 
donner les pleins pouvoirs à un autre compte, en le dispensant de 
saisir son mot de passe lorsqu'il utilise la commande sudo ?

echo "gestionnaire ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers



J’ai du louper des épisodes car je ne vois nulle part dans les 
réponses faites une mention laissant entendre qu’il fallait « disposer 
[l’utilisateur] de saisir son mot de passe ». C’est, à mon sens, une 
très mauvaise pratique à  moins de limiter drastiquement les commandes 
laissées à cet usage.



Effectivement.
Je n'ai pas la méthode pour créer un utilisateur root.
J'ai des notes pour créer un sudoer dans le groupe sudo.
Je ne sais par contre pas s'il est possible de créer un utilisateur 
semblable à l'utilisateur root.
On m'avait surement déjà répondu, cela n'est probablement pas possible, 
ou, compliqué, puisque c'est root (0) qui administre le système.



J'ai passé root en /sbin/nologin dans /etc/passwd ce qui empêche 
l'utilisation de root, tout en permettant au système de fonctionner, 
sudo crontab -e fonctionne normalement.


Je ne sais toujours pas créer un utilisateur gestionnaire capable de 
prendre le rôle de root, pour faire fonctionner l'ensemble des services 
cron, sans passer par des manipulations complexes.


Merci d'avoir répondu.


Re: Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-18 Par sujet Bernard Bass

*La solution fonctionnelle pour désactiver root semble être la suivante :*


1)
sudo passwd root # Créer un mot de passe.
sudo passwd -d root # Supprimer le mot de passe.


2)
* Désactiver l'utilisateur root à partir du shell.
Le moyen le plus simple de désactiver la connexion de l'utilisateur root 
est de changer son shell du répertoire /bin/bash à /sbin/nologin, dans 
le fichier /etc/passwd.


sudo nano /etc/passwd
root:x:0:0:root:/root:/sbin/nologin


3)
sudo passwd -S root
root NP 02/18/2024 0 9 7 -1 # L'utilisateur root utilise no password.


4)
su root
This account is currently not available.


5)
On ne peut donc pas accéder à root directement.
Le système cron avec la crontab -e root continue de fonctionner.
Le user root semble faire son travail sans erreur.



J'aurais préféré créer un utilisateur gestionnaire pour remplacer les 
actions de l'utilisateur root, capable de lancer toutes les tâches cron.

Si quelqu'un sait expliquer la méthode.
Merci.


Re: Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-18 Par sujet Bernard Bass
Pour protéger l'accès au compte root, j'ai bien configuré *sshd* pour 
*interdire le user root*, *la connexion par mot de passe vide et par mot 
de passe*, uniquement *autoriser la connexion par clé ssh ed25519*.




sudo passwd root # Créer un mot de passe.
*passwd --lock root* # Le compte root est alors à nouveau verrouillé !
sudo passwd -S root
[sudo] Mot de passe de l'utilisateur sudoers :
root*L* 12/23/2019 0 9 7 -1 # Le compte root est verrouillé.


sudo passwd root # Créer un mot de passe.
*sudo passwd -d root*
passwd : informations de validité du mot de passe changées.
sudo passwd -S root
root*NP* 02/18/2024 0 9 7 -1
# Le compte root est accessible sans mot de passe depuis l'utilisateur 
sudoers ( Et même d'un simple utilisateur ? Si il a les clés ssh pour se 
connecter au serveur.).
$ su root # Aucun mot de passe n'est demandé pour passer à l'utilisateur 
root.

#


Il semble donc nécessaire de définir un mot de passe complexe pour root 
et de laisser l'utilisateur root activé.
*Je ne comprend pas* la méthode pour désactiver l'utilisateur root, ou 
le mot de passe de l'utilisateur root, en restant dans la bonne pratique 
de sécurité, tout en lui laissant la possibité d'administrer cron.'
*/Supprimer le mot de passe de l'utilisateur root pour ne pas conserver 
le hash du mot de passe en mémoire./*




Désactiver l'utilisateur root à partir du shell :
Le moyen le plus simple de désactiver la connexion de l'utilisateur root 
est de changer son shell du répertoire /bin/bash à /sbin/nologin, dans 
le fichier

Par défaut :
*root:x:0:0:root:/root:/bin/bash*

Si la valeur est changée pour */sbin/nologin* , root sera t'il encore 
capable d'administrer le système ? ( Tâches cron et autres tâches ? )

sudo nano /etc/passwd
*root:x:0:0:root:/root:/sbin/nologin*

*su root
This account is currently not available.*

*sudo bash
root@system
*

sudo crontab -e
Ajouter une tâche.

Erreurs :

Après avoir désactivé root sur le système, *je ne vois pas de solution 
qui permet aux taches cron root, ou cron.daily de fonctionner sans 
configurations avancées*.

*Aucun répertoire /lib/security sur ma machine :*

févr. 18 20:16:02 system sudo[11786]: PAM unable to 
dlopen(pam_ck_connector.so): */lib/security/pam_ck_connector.so*: Ne 
peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce nom
févr. 18 20:16:02 system sudo[11786]: PAM adding faulty module: 
pam_ck_connector.so
févr. 18 20:17:01 system CRON[11802]: PAM unable to 
dlopen(pam_ck_connector.so): /lib/security/pam_ck_connector.so: Ne peut 
ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce nom
févr. 18 20:17:01 system CRON[11802]: PAM adding faulty module: 
pam_ck_connector.so*


*


Re: Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-18 Par sujet Pierre Malard
Bonjour,

> Le 18 févr. 2024 à 18:46, Bernard Bass  a écrit 
> :
> 
> Bonjour,
> Puis-je savoir à quoi sert de désactiver le compte root si c'est pour donner 
> les pleins pouvoirs à un autre compte, en le dispensant de saisir son mot de 
> passe lorsqu'il utilise la commande sudo ?
> echo "gestionnaire ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
> 
> 

J’ai du louper des épisodes car je ne vois nulle part dans les réponses faites 
une mention laissant entendre qu’il fallait « disposer [l’utilisateur] de 
saisir son mot de passe ». C’est, à mon sens, une très mauvaise pratique à  
moins de limiter drastiquement les commandes laissées à cet usage.


> >> Je pense avoir mal compris, je n'aurais pas du désactiver root, mais 
> >> seulement supprimer le mot de passe pour ne pas conserver le hash du mot 
> >> de passe root en mémoire.
> >> sudo passwd -d root
> 
> 
> 
> 
> 
> >> Il faudrait alors réactiver l'utilisateur root , pour qu'il puisse gérer 
> >> les tâches cron du système ( cron.daily ... ) :
> >> sudo passwd --unlock root
> >> Affiche :
> >> passwd : déverrouiller le mot de passe créerait un compte sans mot de 
> >> passe.
> >> Vous devriez définir un mot de passe avec usermod -p pour déverrouiller le 
> >> mot de passe de ce compte.
> 
> 
> >> passwd -S root
> >> root L 2024-01-03 0 9 7 -1
> >> Le compte reste verrouillé (L) après la commande passwd --unlock root
> 
> 
> >> Définir un mot de passe avec usermod -p pour déverrouiller le mot de passe 
> >> de ce compte (root)
> >> Il est indiqué dans une documentation d'enlever le mot de passe du compte 
> >> root pour ne pas laisser le hash en mémoire. :/
> 
> >> passwd root crérait / recrérait un compte root sans mot de passe ? 
> >> <<
> >> Aucun hash de mot de passe ne serait alors conservé en mémoire et le 
> >> compte root serait utilisable par le système pour utiliser cron.
> 
> 
> 
> 
> 
> 
> Même si on interdit la connexion directe sous « root », ce qui peut se 
> concevoir,
> 
> >>Oui, j'ai désactivé la connexion à root depuis SSH.
> >> Il me semble qu'il faille le faire pour le système aussi ? # Sans 
> >> supprimer le compte root pour autant ? # C'est confus.
> 
> il n’empêche que certaines commande doivent être lancées avec ces droits.
> >> Effectivement.
> 
> 
> du coup, pour modifier le crontab root, rien n’empêche d’utiliser un sudo 
> pour prendre ponctuellement ces droits pour modifier le crontab root.
> 
> >> Oui il est possible de modifier la crontab root avec sudo crontab -e
> >> Les tâches ne seront pas lancées et resteront en erreur "Authentication 
> >> failure" avec l'utilisateur root désactivé et le mot de passe expiré.
> 
> 
> 
> Dans le même sujet si une tâche n’a pas besoin des droits root rien n’empêche 
> d’utiliser un crontab « utilisateur » !
> 
> >> Oui, il faut autoriser les scripts depuis "/etc/sudoers.d" mais les tâches 
> >> systèmes ( cron.daily ... ne sont pas lancées si l'utilisateur root est 
> >> désactivé. )
> >> sudo nano /etc/sudoers
> 
> >> Préférer le dossier "/etc/sudoers.d" : il sert à stocker des fichiers 
> >> déclaratifs pour sudoers qui seront lus en complément du fichier sudoers.
> >> Attention, tous les fichiers qui contiennent "~" ou "." dans le nom ne 
> >> seront pas lus !
> >> Organiser les règles par fichier plutôt que de tout centraliser dans le 
> >> même fichier : le fichier sudoers sera toujours lu, dans tous les cas.
> 
> >> Pour créer un nouveau fichier nommé "amis_sh", on utilisera :
> >> sudo visudo /etc/sudoers.d/amis_sh
> >> sudo chmod 440 /etc/sudoers.d/amis_sh
> 
> >> Ajouter deux ligne pour le script sudoer à autoriser :
> >> amis_sh ALL=(ALL:ALL) ALL # Pas certain qu'il faille utiliser cette ligne. 
> >> J'ai testé sans, il me semble que cela ne fonctionne pas.
> >> amis_sh ALL=(ALL) NOPASSWD:/home/amis_sh/test-crontab-sudo.sh
> 
> >> nano test-crontab-sudo.sh
> >> Ajouter les lignes suivantes :
> 
> >> !/bin/sh
> >> touch "/home/amis_sh/test-crontab-sudo-ok1"; # Un fichier avec droits 
> >> utilisateur est créé.
> >> su - amis_sh -c "touch test-crontab-sudo-user-ok"; # Un fichier avec 
> >> droits root est créé.
> >> touch "/home/amis_sh/test-crontab-sudo-ok2"; # Un fichier avec droits 
> >> utilisateur est créé.
> 
> >> Utiliser la crontab de l'utilisateur : crontab -e
> >> 55 12 * * * user=$(whoami) sudo /home/amis_sh/test-crontab-sudo.sh >> 
> >> updates.log 2>&1
> 
> 
> 
> Enfin, si on souhaite mieux gérer tout ça on peut utiliser /etc/cron.d où on 
> indique l’utilisateur à utiliser pour lancer la commande souhaitée… mais il 
> faut avoir les droits « root » pour créer cette entrée ;-)
> >> Oui, Je suppose que l'on peut utiliser ici un nouvel utilisateur 
> >> gestionnaire avec les droits root.
> >> Le problème reste présent pour lancer les tâches cron.daily si 
> >> l'utilisateur root est désactivé.
> 
> 
> 

Re: Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-18 Par sujet Bernard Bass

Bonjour,

Puis-je savoir à quoi sert de désactiver le compte root si c'est pour 
donner les pleins pouvoirs à un autre compte, en le dispensant de saisir 
son mot de passe lorsqu'il utilise la commande sudo ?

echo "gestionnaire ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

*>> Je pense avoir mal compris, je n'aurais pas du désactiver root, mais 
seulement supprimer le mot de passe **pour ne pas conserver le hash du 
mot de passe root en mémoire.

>> sudo passwd -d root*

*
*

**
*
>> Il faudrait alors réactiver l'utilisateur root , pour qu'il puisse 
gérer les tâches cron du système ( cron.daily ... ) :

>> sudo passwd --unlock root*
*>> Affiche :
>> passwd : déverrouiller le mot de passe créerait un compte sans mot 
de passe.*
>> Vous devriez définir un mot de passe avec usermod -p pour 
déverrouiller le mot de passe de ce compte.



>> passwd -S root
>> root L 2024-01-03 0 9 7 -1
*>> Le compte reste verrouillé (L) après la commande passwd --unlock root*


>> *Définir un mot de passe avec usermod -p pour déverrouiller* le mot 
de passe de ce compte (root)
*>> Il est indiqué dans une documentation d'enlever le mot de passe du 
compte root pour ne pas laisser le hash en mémoire. :/


>> passwd root crérait / recrérait un compte root sans mot de passe ? 
<<
>> Aucun hash de mot de passe ne serait alors conservé en mémoire et le 
compte root serait utilisable par le système pour utiliser cron.

*
*
***


Même si on interdit la connexion directe sous « root », ce qui peut se 
concevoir,


*>>Oui, j'ai désactivé la connexion à root depuis SSH.
>> Il me semble qu'il faille le faire pour le système aussi ? # Sans 
supprimer le compte root pour autant ? # C'est confus.*


il n’empêche que certaines commande doivent être lancées avec ces droits.
>> Effectivement.


du coup, pour modifier le crontab root, rien n’empêche d’utiliser un 
sudo pour prendre ponctuellement ces droits pour modifier le crontab root.


*>> Oui il est possible de modifier la crontab root avec sudo crontab -e
>> Les tâches ne seront pas lancées et resteront en erreur 
"Authentication failure" avec l'utilisateur root désactivé et le mot de 
passe expiré.*



Dans le même sujet si une tâche n’a pas besoin des droits root rien 
n’empêche d’utiliser un crontab « utilisateur » !


*>> Oui, il faut autoriser les scripts depuis "/etc/sudoers.d" mais les 
tâches systèmes ( cron.daily ... ne sont pas lancées si l'utilisateur 
root est désactivé. )*

>> sudo nano /etc/sudoers

>> Préférer le dossier "/etc/sudoers.d" : il sert à stocker des 
fichiers déclaratifs pour sudoers qui seront lus en complément du 
fichier sudoers.
>> Attention, tous les fichiers qui contiennent "~" ou "." dans le nom 
ne seront pas lus !
>> Organiser les règles par fichier plutôt que de tout centraliser dans 
le même fichier : le fichier sudoers sera toujours lu, dans tous les cas.


>> Pour créer un nouveau fichier nommé "amis_sh", on utilisera :
>> sudo visudo /etc/sudoers.d/amis_sh
>> sudo chmod 440 /etc/sudoers.d/amis_sh

*>> Ajouter deux ligne pour le script sudoer à autoriser :
>> amis_sh ALL=(ALL:ALL) ALL # Pas certain qu'il faille utiliser cette 
ligne. J'ai testé sans, il me semble que cela ne fonctionne pas.

>> amis_sh ALL=(ALL) NOPASSWD:/home/amis_sh/test-crontab-sudo.sh*

>> nano test-crontab-sudo.sh
>> Ajouter les lignes suivantes :

>> !/bin/sh
>> touch "/home/amis_sh/test-crontab-sudo-ok1"; # Un fichier avec 
droits utilisateur est créé.
>> su - amis_sh -c "touch test-crontab-sudo-user-ok"; # Un fichier avec 
droits root est créé.
>> touch "/home/amis_sh/test-crontab-sudo-ok2"; # Un fichier avec 
droits utilisateur est créé.


>> Utiliser la crontab de l'utilisateur : crontab -e
>> 55 12 * * * user=$(whoami) sudo /home/amis_sh/test-crontab-sudo.sh 
>> updates.log 2>&1



Enfin, si on souhaite mieux gérer tout ça on peut utiliser /etc/cron.d 
où on indique l’utilisateur à utiliser pour lancer la commande 
souhaitée… mais il faut avoir les droits « root » pour créer cette 
entrée ;-)
*>> Oui, Je suppose que l'on peut utiliser ici un nouvel utilisateur 
gestionnaire avec les droits root.*
>> Le problème reste présent pour lancer les tâches cron.daily si 
l'utilisateur root est désactivé.


Mention du paquet Debian super. https://packages.debian.org/trixie/super 
paramétrable finement par /etc/super.tab

*>> Je n'ai pas regardé cette possibilité.*
>> Je lis pour les droits setuid :

# Elever les droits setuid sur les scripts exécutés par cron pour ne pas 
avoir à utiliser sudo :

*>>* *Cette méthode pour ne pas utiliser sudo n'est pas recommandée* :
# sudo chown root script.sh
# sudo chmod 710 script.sh
# sudo chmod u+s script.sh


Re: Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-18 Par sujet Basile Starynkevitch



On 2/18/24 09:26, Pierre Malard wrote:

Bonjour,

Même question, tout ça sert-il à quoi que ce soit ?

Même si on interdit la connexion directe sous « root », ce qui peut se 
concevoir, il n’empêche que certaines commande doivent être lancées 
avec ces droits. su coup, pour modifier le crontab root, rien 
n’empêche d’utiliser un sudo pour prendre ponctuellement ces droits 
pour modifier le crontab root.



Tout à fait d'accord.



Dans le même sujet si une tâche n’a pas besoin des droits root rien 
n’empêche d’utiliser un crontab « utilisateur » !



D'accord aussi.



Enfin, si on souhaite mieux gérer tout ça on peut utiliser /etc/cron.d 
où on indique l’utilisateur à utiliser pour lancer la commande 
souhaitée… mais il faut avoir les droits « root » pour créer cette 
entrée ;-)





Et j'ajouterais la mention du paquet Debian super. 
https://packages.debian.org/trixie/super paramétrable finement par 
/etc/super.tab



--
Basile Starynkevitch 
(only mine opinions / les opinions sont miennes uniquement)
92340 Bourg-la-Reine, France
web page: starynkevitch.net/Basile/
See/voir:   https://github.com/RefPerSys/RefPerSys



Re: Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-18 Par sujet Pierre Malard
Bonjour,

Même question, tout ça sert-il à quoi que ce soit ?

Même si on interdit la connexion directe sous « root », ce qui peut se 
concevoir, il n’empêche que certaines commande doivent être lancées avec ces 
droits. su coup, pour modifier le crontab root, rien n’empêche d’utiliser un 
sudo pour prendre ponctuellement ces droits pour modifier le crontab root.

Dans le même sujet si une tâche n’a pas besoin des droits root rien n’empêche 
d’utiliser un crontab « utilisateur » !

Enfin, si on souhaite mieux gérer tout ça on peut utiliser /etc/cron.d où on 
indique l’utilisateur à utiliser pour lancer la commande souhaitée… mais il 
faut avoir les droits « root » pour créer cette entrée ;-)

https://doc.ubuntu-fr.org/cron

> Le 18 févr. 2024 à 00:09, Sébastien Dinot  a écrit :
> 
> Bernard Bass a écrit :
>> Voilà ma question : Comment remplacer l'utilisateur root pour utiliser
>> le service cron ?
> 
> Puis-je savoir à quoi sert de désactiver le compte root si c'est pour
> donner les pleins pouvoirs à un autre compte, en le dispensant de saisir
> son mot de passe lorsqu'il utilise la commande sudo ?
> 
>> echo "gestionnaire ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
> 
> La subtilité de la manœuvre m'échappe.
> 
> Sébastien
> 
> --
> Sébastien Dinot, sebastien.di...@free.fr
> http://www.palabritudes.net/
> Ne goutez pas au logiciel libre, vous ne pourriez plus vous en passer !
> 

--
Pierre Malard
Responsable architectures système CDS DINAMIS/THEIA Montpellier
IRD - UMR Espace-Dev - UAR CPST - IR Data-Terra
Maison de la Télédétection
500 rue Jean-François Breton
34093 Montpellier Cx 5
France

Tél : +33 626 89 22 68

   «[...]développer la science ? Noble ambition ; mais qu'est-ce que
la science ? Une puissance et une joie ; et, si elle ne s'anime pas
   de l'esprit de justice, [...] de la vie des hommes, [...] elle est un
   privilège en plus.»
Jean Jaures - "L'idéal de justice" - 1889
   |\  _,,,---,,_
   /,`.-'`'-.  ;-;;,_
  |,4-  ) )-,_. ,\ (  `'-'
 '---''(_/--'  `-'\_)   πr

perl -e '$_=q#: 3|\ 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-.  ;-;;,_:  |,A-  ) )-,_. ,\ 
(  `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"'  `-'"'"'\_): 
24πr::#;y#:#\n#;s#(\D)(\d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--



signature.asc
Description: Message signed with OpenPGP


Re: Comment remplacer l'utilisateur root pour utiliser le service cron ?

2024-02-17 Par sujet Sébastien Dinot
Bernard Bass a écrit :
> Voilà ma question : Comment remplacer l'utilisateur root pour utiliser
> le service cron ?

Puis-je savoir à quoi sert de désactiver le compte root si c'est pour
donner les pleins pouvoirs à un autre compte, en le dispensant de saisir
son mot de passe lorsqu'il utilise la commande sudo ?

> echo "gestionnaire ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

La subtilité de la manœuvre m'échappe.

Sébastien

-- 
Sébastien Dinot, sebastien.di...@free.fr
http://www.palabritudes.net/
Ne goutez pas au logiciel libre, vous ne pourriez plus vous en passer !