Aller au contenu principal

Sur la machine srv-lin-01. Lire le ticket, agir dans le terminal, puis vérifier.

Ticket 3667, ouvert par Thomas Legrand : la revue des tâches planifiées de srv-lin-01 a trouvé la ligne de l'import nocturne de la radio-relève dans la table cron de Samir Ouali. Samir l'y a posée un soir où l'import ne tournait plus : depuis, l'import a tous les droits de Samir, ceux de l'équipe informatique compris, il s'arrêtera le jour où son compte sera fermé, et rien dans les journaux ne le distingue de Samir lui-même. Chaque nuit à 1 h 45, le script /opt/scripts/import-releve.sh prend les fichiers d'index que le concentrateur de la radio-relève dépose dans /srv/releve/arrivee, les range dans /srv/releve/facturation, où le service Facturation les reprend pour le logiciel des abonnés, note chacun dans /srv/releve/journal/import.log, puis le retire de l'arrivée.

Faire tourner l'import sous un compte de service à lui, svc-releve, dont le commentaire nomme le propriétaire, Thomas Legrand. Aucune session ne doit pouvoir s'ouvrir sous ce compte, aucun mot de passe ne doit l'ouvrir, et il ne doit avoir aucun droit d'administration : seulement ce qu'il faut sur les trois dossiers de la relève. L'import doit toujours partir chaque nuit à 1 h 45, et de ce seul compte : plus rien de l'import ne doit dépendre du compte de Samir, ni sa table cron, ni ses droits sur les dossiers de la relève. Élodie Marchal et le service Facturation doivent toujours lire les index rangés pour eux, et les autres agents ne doivent toujours pas pouvoir déposer ni modifier un fichier dans ces dossiers.

Rappel

Le chapitre confie le logiciel des abonnés à un compte de service géré de l'annuaire, dont personne ne connaît le mot de passe. Les comptes de srv-lin-01 sont locaux à la machine : l'équivalent est un compte système sans mot de passe, que seul le système, par cron, fait agir.

  • useradd -r crée un compte système (numéro inférieur à 1000, sans dossier personnel) ; -s /sbin/nologin lui donne un programme de connexion qui referme toute session ; -c "texte" remplit son commentaire, qui ne peut pas contenir de deux-points, le séparateur des champs de /etc/passwd. Sans -s, useradd donne un shell ordinaire.
  • Sans passwd ni -p, le mot de passe reste verrouillé : sudo passwd -S compte affiche L, et /etc/shadow porte un ! à la place de l'empreinte. Personne ne peut s'authentifier sous ce nom, et cron n'en a pas besoin.
  • chown compte chemin change le propriétaire, chown -R le fait aussi pour tout ce que contient un dossier ; chown compte:groupe change en plus le groupe. ls -l et ls -ld montrent l'un et l'autre.
  • sudo crontab -u compte -l affiche la table d'un compte ; printf '...\n' | sudo crontab -u compte - la remplace entière, comme sudo crontab -u compte fichier ; sudo crontab -u compte -e l'ouvre dans nano.
  • id compte liste ses groupes, sudo -l -U compte ce que sudo lui accorde.

Boîte à outils

Un clic écrit la commande au curseur, sans la lancer.

Indications

Indication 2
Indication 3

Le ticket se prépare dès que la machine est prête.