With default priority (128), pam-auth-update put module pam_sss after module pam_unix in /etc/pam.d/common-auth, and then a user with a local account and local password synchronized with AD password will never be granted a Kerberos TGT on session opening.
55 lines
2.5 KiB
Markdown
55 lines
2.5 KiB
Markdown
D'apres [PAMConfigFrameworkSpec], `pam_sss` devrait avoir une priorité
|
|
>= 512, puisqu'il s'agit d'un profil qui "authenticates against a central
|
|
network service, with rules to exclude administrative/system accounts". Or sa
|
|
priorité définie dans `/usr/share/pam-configs/sss` est 128 ... pourquoi ?
|
|
|
|
=> chercher dans le bugtracker ?
|
|
|
|
On dirait vraiment que `pam_sss` est conçu et configuré pour des
|
|
utilisateurs qui sont enregistrés dans un LDAP et pas en local (dans ce
|
|
cas ça marche direct). Moi je veux bien, c'est parfait pour un poste
|
|
fixe qui est toujours connecté au réseau, mais que se passe-t'il avec
|
|
un laptop déconnecté, si on n'a pas de mot de passe local ?
|
|
|
|
On pourrait envisager de désactiver le profil `pam_unix`, comme cela il
|
|
ne reste que `pam_sss` et le problème disparait, mais je soupçonne qu'il
|
|
va y avoir des effets de bord ;-)
|
|
|
|
Pour passer `pam_sss` en premier, il faut augmenter sa priorité. On peut
|
|
faire cela en modifiant le fichier `/usr/share/pam-configs/sss` à la
|
|
volée depuis le `postinst` avec `sed`, mais c'est très moche, et cela ne
|
|
résiste pas à une mise à jour du paquet `libpam-sss`, il faudrait mettre
|
|
en place un `trigger` ou mieux encore un `divert` ... ça reste du bricolage.
|
|
|
|
Autre solution, plus propre:
|
|
- ajouter un fichier `/usr/share/pam-configs/sss-yourdev`, copie de `sss`
|
|
- modifier sa propriété `Name` et augmenter la valeur de `Priority`
|
|
- rajouter une propriété `Conflicts: sss`
|
|
- dans le `postinst`, activer `sss-yourdev` et désactiver `sss`
|
|
|
|
Important: ne pas utiliser --force dans les scripts, seulement --package
|
|
Important: bien verifier uid >= 1000 et users interdits.
|
|
|
|
Note: les deux profils `sss` et `sss-yourdev` sont en conflit, mais leur
|
|
propriété `Default` vaut `yes`, ce qui a une conséquence particulière
|
|
: quand on lance `pam-auth-update` une première fois en mode interactif,
|
|
sans avoir exécuté la configuration automatique via le `postinst`, alors
|
|
les deux profils sont sélectionnés dans le dialogue `debconf`. Si on
|
|
valide à ce moment, le dialogue se plaint qu'il y a conflit, et refuse de
|
|
valider la sélection. Il faut modifier et choisir l'un ou l'autre. Ensuite,
|
|
le dialogue se souvient du choix qui a été fait.
|
|
|
|
Références
|
|
----------
|
|
|
|
- [pam.conf(5)]
|
|
- [pam-auth-update(8)]
|
|
- [PAMConfigFrameworkSpec]
|
|
|
|
[PAMConfigFrameworkSpec]: https://wiki.ubuntu.com/PAMConfigFrameworkSpec
|
|
[pam.conf(5)]: https://manpages.debian.org/bullseye/libpam-runtime/pam.conf.5.en.html
|
|
[pam-auth-update(8)]: https://manpages.debian.org/bullseye/libpam-runtime/pam-auth-update.8.en.html
|
|
|
|
|
|
|