version-8-08
Les Horizon System Tools (HST)
Objectifs
- Les HST servent à administrer un serveur Linux de manière cohérente : une seule série d'outils permet de réaliser des actions de “haut-niveau”, comme ajouter un utilisateur, modifier son profil, le rendre membre d'un groupe, l'autoriser à voir certains fichiers, le supprimer, voir la configuration du système, la modifier, etc.
- Les HST fournissent des API pour plusieurs langages de programmation afin de pouvoir réaliser ces opérations depuis d'autres logiciels indépendants des HST (comme une interface web par exemple).
- Les HST fournissent des services transparents aux utilisateurs et aux administrateurs pour leur simplifier la vie et l'utilisation de leur machine, de leur réseau ou de leurs données.
Architecture
Les HST sont composés :
- d'outils en ligne de commande avec système d'aide intégré, à savoir :
horizon-getent
(ou plus simplementget
) : pour obtenir des informations sur le système, les comptes, la configuration…get
sert aussi à faire des recherches, ou à transcrire certaines informations dans d'autres langages de programmation.horizon-add
(ouadd
) : pour ajouter des informations, des comptes…horizon-modify
(oumod
) : pour modifier les informations présentes sur le système.horizon-delete
(oudel
) : pour supprimer des informations.horizon-check
(chk
) : pour vérifier et réparer la cohérence et la consistance des informations et des données du système.
- d'une bibliothèque Python d'objets et fonctions réutilisables pour assurer le travail des outils précédents.
- d'un démon UNIX
hackd
, qui vérifie en temps réel certaines informations et en assure la consistance “à la volée”. C'est aussi lui qui rend service aux utilisateurs en leur évitant des manipulations nécessaires mais fastidieuses sur leurs fichiers et répertoires partagés.
Utilisation
Chaque outil Horizon possède son propre système d'aide embarqué. Vous pouvez donc appeler chacun des outils sans aucun paramètre, puis avec -h
ou –help
pour avoir des informations sur son utilisation, ses options, son fonctionnement.
Pour chaque outil, vous pouvez trouver le descriptif des options en rajoutant les paramètres à l'outil (comme add user -h
pour savoir comment ajouter un utilisateur).
Quelques exemples pratiques
- ajouter un groupe
add group --name=nom_groupe
- ajouter un utilisateur
add user --login toto add user --firstname prenom --lastname nom --password mot_de_passe add user --profile eleves --login toto2 --password mot_de_passe
- modifier un utilisateur
mod user --login identifiant --password nouveau_mot_de_passe mod user --login identifiant --add-groups=groupe1,groupe2 --del-groups=groupe3,groupe4
- vérifier et corriger les droits sur tous les fichiers d'un dossier de groupe…
chk group --name groupe_classe --auto-yes
- remettre tous les enseignants dans les groupes dont ils doivent faire partie :
mod profile --group enseignants --apply-groups --to-all
La plupart des options et arguments sont facultatifs. La plupart du temps une supposition “saine” permet de trouver la valeur automatiquement. Par exemple, si vous ne spécifiez pas --password
pour la commande add user
, HST génèrera automatiquement un mot de passe et vous le donnera (la taille du mot de passe dépend du système sous-jacent AbulÉdu ou Horizon). Pour connaître toutes les options et arguments des HST, lancez les commandes sans argument (tapez simplement add
ou mod
), puis utilisez --help
pour visualiser l'aide intégrée.
Pour avoir le droit de faire les commandes sudo indiquées ci-dessous vous devrez lancer ces commandes à partir d'un utilisateur type “administrateur” comme abuladmin par exemple.
Voir si un groupe est permissif
- sudo get groups | grep ^nom_du_groupe, par exemple get groups | grep ^interprofs: à la fin de la ligne vous aurez l'information “permissive” ou “not permissive”
Modifier le groupe pour le rendre permissif
- sudo mod group -p interprofs
Vérifier et remettre tous les fichiers comme il faut
- sudo chk group interprofs -b
Remettre les droits par défaut pour les utilisateurs
- sudo chk user -a -y