174 lines
8.3 KiB
Markdown
174 lines
8.3 KiB
Markdown
# Comment devenir nounou ?
|
|
|
|
Bonjour jeune apprenti⋅e, tu regardes sûrement avec des yeux pleins d'étoiles
|
|
tes ainé⋅es qui actuellement disposent des droits suprêmes sur l'infrastructure
|
|
du Crans. Ce petit document est là pour t'expliquer comment toi aussi un jour tu
|
|
pourras devenir l'un⋅e d'elleux. Et quand il sera temps et que tu commenceras à
|
|
t'encrouter, comment tu pourras rendre tes droits.
|
|
|
|
Déjà commençons par une question un peu conne mais néanmoins légitime « Qui
|
|
"mérite" d'être nounou ? » Premièrement, devenir nounou **N'EST PAS** une
|
|
question de compétence. Pas besoin de connaître l'infrastructure par cœur, tous
|
|
les fichiers de conf, être un pro d'apt, d'ansible et de la couche 2. Tout ce
|
|
qu'on attend d'une nouvelle nounou c'est d'être capable de ne pas faire
|
|
n'importe quoi avec ces droits. Devenir nounou ce n'est pas avoir fini son
|
|
apprentissage mais bien la deuxième étape de celui-ci où on commence à mettre
|
|
les mains dans le camboui. Et ça ça présuppose seulement qu'on va pas causer du
|
|
tort en utilisant ces droits.
|
|
|
|
Détaillons-les un peu ces droits, ce qu'il permette de faire et qu'est ce qu'on
|
|
entend par « causer du tort ». En devenant nounou, vous débloquez les accès à
|
|
toute l'infrastructure. Techniquement, il n'y a plus de fichiers que vous ne
|
|
pouvez pas voir, modifier ou supprimer et ce sur toutes les machines du Crans.
|
|
De même, on chiffre pour vous tous les mots de passe qui ont trait au technique
|
|
du Crans. Ce sont des droits très extensifs. D'où la possibilité de faire une
|
|
erreur de manipulation. Normalement tout est fait dans l'infrastructure pour
|
|
limiter la casse possible. On a de la redondance où c'est possible et
|
|
nécessaire, on fait des backups quotidiennes à la fois des données utilisateur⋅rices
|
|
mais aussi des données d'administration. Cependant, tout ça ne change pas le
|
|
fait qu'une mauvaise commande rentrée dans votre shell peut rendre le
|
|
Crans hors ligne pour quelques heures ou supprimer de manière irreversible des
|
|
données. Quand vous devenez nounou, on vous fait confiance pour éviter ce genre
|
|
de choses au maximum. Après les erreurs ça arrive toujours. La personne qui
|
|
écrit ces lignes en a fait un certain nombre avec des conséquences diverses.
|
|
Ce qui compte ce n'est pas de ne pas en faire du tout, c'est d'en faire peu,
|
|
d'apprendre de celles-ci et de s'assurer qu'elles ne sont pas irréversibles.
|
|
|
|
Il y a aussi quelque chose qu'il faut souligner. Et normalement quand vous
|
|
deviendrez nounou vous allez le voir assez fréquement (à chaque fois que vous
|
|
faîtes un sudo pour la première fois sur une machine) :
|
|
|
|
```txt
|
|
We trust you have received the usual lecture from the local System
|
|
Administrator. It usually boils down to these three things:
|
|
|
|
#1) Respect the privacy of others.
|
|
#2) Think before you type.
|
|
#3) With great power comes great responsibility.
|
|
```
|
|
|
|
Ce court texte résume bien ce que je veux aborder ici. Les droits que vous vous
|
|
voyez confier sont une intrusion phénoménale dans la vie privée des gens. Si
|
|
vous voulez une métaphore, vous pouvez voir ça comme si les adhérent⋅es du Crans
|
|
vous avait donné la clé de leur maison pour que vous puissiez réparer quand il y
|
|
a une fuite d'eau, mais pas pour que vous fouillez dans le bureau pour voir leurs
|
|
papiers. Beaucoup de nos adhérent⋅es utilisent les outils qu'on met à leur
|
|
disposition pour organiser une partie de leur vie, que ce soit d'utiliser
|
|
l'adresse mail qui leur est fournie ou stocker des données dans leur Owncloud,
|
|
et nous en sommes très heureux⋅ses. La charte que vous avez signé en devenant
|
|
apprenti⋅e mentionne déjà ces problématiques mais il est important que ce soit
|
|
très clair. **Vous ne pouvez consulter ou diffuser les données personnelles
|
|
d'un⋅e adhérent⋅e qu'avec son consentement explicite.** On a parfois tendance à
|
|
l'ENS à faire des abus de droits une blague, ce n'est pas le cas au Crans !
|
|
|
|
Bon maintenant que ces clarifications et rappels ont été faits, on va pour
|
|
passer aux choses plus intéréssantes : comment on se donne ces droits (et dans la
|
|
marge, comment on se les retire) ?
|
|
|
|
## Rentre dans le cercle
|
|
|
|
Le groupe des superadministrateur⋅rices au Crans est le groupe nounou. On va donc
|
|
faire un petit tour dans le ldap et sous ou=groups,cn=_nounou on rajoute les
|
|
uids correspondant au⋅x personne⋅s qu'on souhaite ajouter. Voilà, vous avez
|
|
normalement:tm: les accès root sur toutes les machines du Crans. Cependant,
|
|
vous allez peut-être constater qu'il y a certaines machines où cela ne
|
|
fonctionne pas. C'est sûrement dû à ces ~~conneries~~ de replicat ldap. Il faut
|
|
à ce moment là aller faire un tour dessus pour forcer la resynchro (c.f.
|
|
`tools/ldap.md`).
|
|
|
|
## Give me the password
|
|
|
|
Vous avez *50* nouveaux mot de passes. Il est maintenant nécessaire de
|
|
rechiffrer le pass pour vous. C'est un peu chiant mais on s'y fait. Voilà la
|
|
procédure:
|
|
|
|
1. On se souvient du hash de commit courant :
|
|
`HASH=$(git rev-parse HEAD)`
|
|
1. On ajoute toutes les personnes concernées dans le groupe nounou dans le
|
|
fichier `.groups.yml` du store et on commit ces changements `git commit -m
|
|
toto1234`.
|
|
1. On rechiffre tous les fichiers à rechiffrer
|
|
`cat .last_group.json | jq -r '. | with_entries( select(.value | any( .==
|
|
"nounou"))) | keys[]' | xargs pass rans reencrypt`
|
|
1. On supprime tous les commits inutiles :
|
|
`git reset --soft $HASH; git commit -m 'Coucou les ami⋅es'`
|
|
1. On vérifie que ça marche et on push :)
|
|
|
|
Petit point pour quand on retire des droits au gens. Là où pour tous les autres
|
|
droits, quand vous les retirez à quelqu'un⋅e bah iel les a plus, ce n'est pas le
|
|
cas pour les mots de passe. Il reste dans l'historique de git un moment où la
|
|
personne qui perds ces droits à toujours les mots de passes chiffrées pour elle.
|
|
On choisit généralement de s'en tamponner l'oreille avec une babouche.
|
|
Cependant, il peut y avoir certains moments où on veut effectivement retirer
|
|
complètement à quelqu'un⋅e la possibilité d'utiliser un mot de passe. Dans ce
|
|
cas il faut le changer :(
|
|
|
|
## Thank you for your services
|
|
|
|
Au Crans on a **plein** de services. Certains sont gentils et écoutent
|
|
directement le ldap pour savoir qui a des droits, d'autres s'en foutent et ils
|
|
faut se rajouter dans les admins à la main. Petite liste ci dessous.
|
|
|
|
### Gitlab
|
|
|
|
Il faut aller dans la zone d'administration, puis dans la liste
|
|
d'utilisateur⋅ices et changez le profil de l'utilisateur⋅ice de regular à admin.
|
|
|
|
### Mailman
|
|
|
|
Il faut se connecter normalement au logiciel, puis allez dans la section admin
|
|
<https://lists.crans.org/admin>, dans la sous page utilisateur⋅rices, on peut
|
|
rechercher les personnes concernées pour leur donner les deux statuts admin
|
|
(accès à la zone d'administration) et superutilisateur (bypass tous les checks
|
|
de droits).
|
|
|
|
### Owncloud
|
|
|
|
Il faut aller dans la zone d'administration et rajouter les utilisateur⋅ices au
|
|
groupe d'administration.
|
|
|
|
### Re2o
|
|
|
|
Oh lad, j'espère que ça aussi ça existe plus. Il faut aller dans la section
|
|
gestion des groupes et rajouter les personnes aux groupes nounous et au groupe
|
|
superutilisateur⋅rice.
|
|
|
|
### Kiwi
|
|
|
|
On édite le fichier de conf du wiki sous `/etc/moin/mywiki.py` et on rajoute son
|
|
compte wiki dans la liste des administrateur⋅rices.
|
|
|
|
### IRC
|
|
|
|
On édite le fichier `/etc/inspircd/opers.conf` pour rajouter un bloc suivant
|
|
|
|
```txt
|
|
<oper
|
|
name=<nick>
|
|
password="<pass-hash>"
|
|
hash="sha256"
|
|
host="*"
|
|
type="Deity"
|
|
fingerprint="<fingerprint certificat>"
|
|
autologin="on"
|
|
>
|
|
```
|
|
|
|
Où le hash du mot de passe peut être obtenu en envoyant
|
|
`/quote mkpasswd hmac-sha256 <password>`. Pour rendre les changements effectifs
|
|
on reload le service inspircd (tips, la manière la plus rapide de perdre ses
|
|
droits est de restart le serveur plutôt que de le reload ^^).
|
|
|
|
### Mails
|
|
|
|
Il faut maintenant vous rajouter en alias de root@crans.org. C'est le début du
|
|
spam. Pour ce faire, rendez-vous sur le dépôt Gitlab `mail-aliases`, et ajoutez
|
|
votre pseudo Crans sur la bonne ligne dans les bons fichiers, en face de `root:`.
|
|
Pensez ensuite à mettre à jour le dépôt pour le service `mail`, et enfin mettez
|
|
bien à jour `redisdead`, `sputnik` et surtout `zamok` dans le dossier
|
|
`/var/local/services/mail`. Enfin, pensez bien à filtrer les mails arrivant à
|
|
l'adresse `root@crans.org` sur votre client.
|
|
|
|
Voilà, tu as maintenant gagné le droit de t'ajouter ou de te retirer de
|
|
<https://wiki.crans.org/CransNounous> !
|