Page 1 sur 1

[login] Impossible depuis tty (résolu)

Publié : lun. 25 févr. 2013, 17:52
par JohnCool
Bonjour,

Je débute un peu avec arch, me voilà devant un problème que je n'arrive pas à résoudre...

Hier dans la matinée j'ai fait une grosse mise à jour (~500 Mo de dl).
J'en ai profité pour passer complètement à systemd.
J'ai mergé des fichiers pacnew (chose que je n'avais jamais fait...)

Maintenant mon système démarre normalement, grub, systemd et le montage des partitions se déroulent sans problème tout est ok.
J'arrive normalement à la phase de login dans une TTY.
Et là impossible de me connecter...

Que ce soit en root ou avec mon utilisateur principal, je tape mon login, je tape mon mot de passe, et j'obtiens un "Login incorrect" alors que mon mot de passe est bon.

J'ai récupéré mon système à partir d'un chroot et tout semble bien fonctionner.
J'ai vérifié si ce n'étais pas une erreur "de base", c'est pas un problème de keymap, ni un nologin.
J'ai changé mes mots de passe pour des trucs simple impossible à rater.
J'ai vérifié si il me manquait pas un fichier critique du genre /bin/login ... Pas de problème de ce coté là


Pour réduire le problème j'ai désactivé tout lancement de slim et Xorg.

J'ai inspecté les logs et ... rien d'anormal a part des login failed avec authentification failure. Mais j'en parlerais plus bas.

J'ai dans un premier temps pensé que j'avais corrompu un des fichier du genre /etc/passwd shadow groups ou gshadows.
J'avais en effet mergé ces fichiers avec des pacnew en utilisant yaourt -C.
Dans les pacnew, j'avais juste une ligne en plus avec l'utilisateur polkitd que j'ai ajouté aux fichiers.
J'avais fait des backup de mes anciens fichiers et après pas mal de tentatives je ne pense pas que le problème vient de là.
J'ai vérifié la cohérence de ces fichiers avec pwck, grpck et c'est ok, les droits de lectures sont aussi bons.

J'ai ajouté un utilisateur bidon "truc", toujours depuis le chroot. J'ai crée un mot de passe ainsi que son home.
Je reboot, et là je peux login avec cet utilisateur mais toujours pas avec les autres.

Aussi, chose étonnante, depuis une session avec l'utilisateur "truc" je peux m'authentifier (avec su) vers mon utilisateur principal, ou vers root sans problème. Les mots de passe fonctionnent normalement et tout se passe bien.
Ceci me laisse penser que le problème de viens pas des /etc/passwd ou /etc/shadow

Aussi j'ai supprimer mon utilisateurs des groupes auquel il appartenait de manière a être dans les mêmes que ceux de l'utilisateur "truc". Sans succès

J'ai essayé de comparer les logs d'authentifications ratées et réussies avec les bons mots de passes ou avec des mauvais.
Voilà ce que ça donne.

Avec mon utilisateur principal :
En tapant volontairement un mauvais password :

Code : Tout sélectionner

pam_unix(login:auth): authentification failure ; logname=LOGIN uid=0 euid=0 tty=tty3 ruser= rhost= user=cnew
FAILED LOGIN 1 FROM tty3 FOR cnew, Authentification failure
Maintenant en tapant le bon password :

Code : Tout sélectionner

FAILED LOGIN 2 FROM tty3 FOR cnew, Authentification failure
Autrement dit, j'ai plus l'erreur de PAM.

J'ai cherché du coté de pam, mais sans succès.

J'ai aussi essayé de réinstaller des packages avec yaourt, regardé du coté des fichiers login.defs mais rien n'a changé.
Aussi je ne pense pas avoir fait de yaourt -f, ou du moins pas récemment.
Je n'ai pas non plus de périphérique exotique du genre lecteur d'empreintes et je ne pense pas avoir déjà touché à pam.

Voilà où j'en suis, si une âme charitable à une idée pour décoincer mon système, merci d'avance.

Bien sûr j'ai trouvé beaucoup de choses sur google, les docs, et les man, mais jamais de problème identique.
(enfin si vous me donnez un lien que j'aurais raté je le prendrai pas mal non plus :) )

Bonne journée

Re: [LOGIN] Impossible depuis tty

Publié : lun. 25 févr. 2013, 20:06
par FoolEcho
Salut,

Franchement, au vu de tes essais... je ne pige pas (même si je ne suis pas très rassuré par le fait que tu aies touché à passwd et cie manuellement/il est préférable de passer par les outils appropriés pour ça). :?

Au cas où, tu peux nous montrer la trace complète (avec journalctl) quand tu te connectes correctement avec "truc" et quand le bon mot de passe est saisi pour root ou toi-même depuis un tty ? Et ensuite les su - root ou su - toi-même avec bons mots de passe depuis le compte de truc (n'oublie pas exit entre chaque changement de compte pour toujours partir de "truc") ? (par trace complète j'entends à partir du moment où tu vas sur le tty) ... et même su - truc...

Re: [login] Impossible depuis tty

Publié : lun. 25 févr. 2013, 20:54
par JohnCool
Bonsoir,
Merci pour l'aide.
Voilà un log plus complet :

Avec dans l'ordre:

1)Login avec cnew (mon utilisateur principal) avec un mauvais password
2)Login avec cnew (mon utilisateur principal) avec le bon password
3)Login avec root avec un mauvais password
4)Login avec root avec le bon password

5)Login avec truc avec un mauvais password
6)Login avec truc avec le bon password.

A partir d'ici seulement je suis connecté avec truc

7)Su depuis truc vers cnew avec un mauvais password
8)Su depuis truc vers cnew avec le bon password
Ici je suis authentifié en cnew; je fais un exit, je reviens à truc

9)Su depuis truc vers root avec un mauvais password
10 )Su depuis truc vers root avec le bon password
Je suis a partir d'ici authentifié en root

http://pastie.org/private/vbtzh98rdhczeeuuvxosrg

Code : Tout sélectionner

Feb 25 19:58:54 cnew-desktop systemd-logind[234]: Watching system buttons on /dev/input/event3 (Power Button)
Feb 25 19:58:54 cnew-desktop systemd-logind[234]: Watching system buttons on /dev/input/event2 (Power Button)
Feb 25 19:59:02 cnew-desktop login[239]: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=  user=cnew
Feb 25 19:59:04 cnew-desktop login[239]: FAILED LOGIN 1 FROM tty1 FOR cnew, Authentication failure
Feb 25 19:59:11 cnew-desktop login[239]: FAILED LOGIN 2 FROM tty1 FOR cnew, Authentication failure
Feb 25 19:59:16 cnew-desktop login[239]: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=  user=root
Feb 25 19:59:16 cnew-desktop systemd-journal[128]: Forwarding to syslog missed 30 messages.
Feb 25 19:59:18 cnew-desktop login[239]: FAILED LOGIN 3 FROM tty1 FOR root, Authentication failure
Feb 25 19:59:23 cnew-desktop login[239]: FAILED LOGIN 4 FROM tty1 FOR root, Authentication failure
Feb 25 19:59:30 cnew-desktop login[239]: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=  user=truc
Feb 25 19:59:31 cnew-desktop login[239]: FAILED LOGIN SESSION FROM tty1 FOR truc, Authentication failure
Feb 25 19:59:34 cnew-desktop systemd[1]: getty@tty1.service holdoff time over, scheduling restart.
Feb 25 19:59:34 cnew-desktop systemd[1]: Stopping Getty on tty1...
Feb 25 19:59:34 cnew-desktop systemd[1]: Starting Getty on tty1...
Feb 25 19:59:34 cnew-desktop systemd[1]: Started Getty on tty1.
Feb 25 19:59:39 cnew-desktop login[244]: pam_unix(login:session): session opened for user truc by LOGIN(uid=0)
Feb 25 19:59:39 cnew-desktop systemd-logind[234]: New session 1 of user truc.
Feb 25 19:59:39 cnew-desktop login[244]: LOGIN ON tty1 BY truc
Feb 25 19:59:54 cnew-desktop su[252]: pam_unix(su:auth): authentication failure; logname=truc uid=1002 euid=0 tty=tty1 ruser=truc rhost=  user=cnew
Feb 25 19:59:56 cnew-desktop su[252]: FAILED SU (to cnew) truc on /dev/tty1
Feb 25 20:00:05 cnew-desktop su[253]: (to cnew) truc on /dev/tty1
Feb 25 20:00:05 cnew-desktop su[253]: pam_unix(su:session): session opened for user cnew by truc(uid=1002)
Feb 25 20:00:11 cnew-desktop su[253]: pam_unix(su:session): session closed for user cnew
Feb 25 20:00:16 cnew-desktop su[258]: pam_unix(su:auth): authentication failure; logname=truc uid=1002 euid=0 tty=tty1 ruser=truc rhost=  user=root
Feb 25 20:00:17 cnew-desktop su[258]: FAILED SU (to root) truc on /dev/tty1
Feb 25 20:00:24 cnew-desktop su[259]: (to root) truc on /dev/tty1
Feb 25 20:00:24 cnew-desktop su[259]: pam_unix(su:session): session opened for user root by truc(uid=1002)

Voilà, on remarque que pam lève une erreur uniquement quand le mot de passe est mauvais lors du login (cas 1) et 3) ) et non pas quand le login rate et que le mot de passe est bon (cas 2) et 4) ).
Au milieu du log, getty se relance il me semble. Je ne sais pas si c'est significatif, je ne pense pas.

Re: [login] Impossible depuis tty

Publié : lun. 25 févr. 2013, 21:04
par JohnCool
Voilà mon fichier

passwd http://pastie.org/private/lumnjvbjzrwtldzirkjr4w

et shadow http://pastie.org/private/5asl1gy6p7sty7oxuutq

ils me semblent corrects

EDIT: L'authentification avec slim ne marche pas non plus avec root et cnew, alors que c'est bon avec truc.
Il me semble donc que le problème ne vient pas directement des tty mais plutôt de la procédure de "login" en arrière plan


EDIT 2: Problème presque résolu !

J'ai trouvé un fichier /etc/pam.d/login.old
Je sais pas exactement ce qu'il faisait là, je pense pas qu'il vient de moi.
J'ai remplacé /etc/pam.d/login par ce login.old (en faisant un back up de /etc/pam.d/login au préalable) et je peux maintenant login depuis une tty avec root et cnew !

Je fait des recherches sur ce fichier, savoir d'où il sort, pourquoi /etc/pam.d/login a été modifié et je vous tiens au courant.

Merci de l'aide !

Re: [login] Impossible depuis tty

Publié : lun. 25 févr. 2013, 21:19
par tuxce
Salut, regarde si tu as bien /bin/zsh dans /etc/shells

Re: [login] Impossible depuis tty

Publié : lun. 25 févr. 2013, 22:46
par JohnCool
Alors, apparament, mon problème vient de là : https://bbs.archlinux.org/viewtopic.php?id=144498&p=1

Ça date un peu… mais je merge pas souvent mes pacnew…
La nouvelle version du ficher a le fonctionnement étrange que j'ai expliqué.
Le fichier /etc/pam.d/login.old était en fait mon fichier login avant que je l'écrase par le pacnew. Et c'est bien moi qui l'avais mis de coté (heuresement).

Maintenant, il reste à savoir ce qui n'allait pas dans mon cas avec le nouveau fichier…
Malheureusement, je ne comprends rien à ces fichers de configurations PAM…

Je laisse les miens si quelqu'un de plus compétent que moi passe ;) :

Celui qui marche (le vieux)

Code : Tout sélectionner

#%PAM-1.0
auth            required        pam_securetty.so
auth            requisite       pam_nologin.so
auth            required        pam_unix.so nullok
auth            required        pam_tally.so onerr=succeed file=/var/log/faillog
# use this to lockout accounts for 10 minutes after 3 failed attempts
#auth           required        pam_tally.so deny=2 unlock_time=600 onerr=succeed file=/var/log/faillog
account         required        pam_access.so
account         required        pam_time.so
account         required        pam_unix.so
#password       required        pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
#password       required        pam_unix.so sha512 shadow use_authtok
session         required        pam_unix.so
session         required        pam_env.so
session         required        pam_motd.so
session         required        pam_limits.so
session         optional        pam_mail.so dir=/var/spool/mail standard
session         optional        pam_lastlog.so
session         optional        pam_loginuid.so
-session        optional        pam_ck_connector.so nox11
-session        optional        pam_systemd.so
Celui qui marche moins bien chez moi : (le nouveau)

Code : Tout sélectionner

#%PAM-1.0

auth       required     pam_securetty.so
auth       requisite    pam_nologin.so
auth       include      system-local-login
account    include      system-local-login
session    include      system-local-login
Voilà.
Maintenant, je peux login depuis la console. Il me reste le même problème pour login depuis slim. Je pense que c'est la même chose, je vais regarder du coté de /etc/pam.d/slim .


EDIT :
Je ne comprends pas mon problème avec slim.
C'est exactement le même comportement que avec login : impossible de login avec cnew et root (c'est pas dans mes habitudes ;) ) alors que c'est bon avec truc.

Je laisse tomber vu que je peux toujours passer par une tty puis startx.
Mais je laisse quand même ici mon /etc/pam.d/slim si quelqu'un est interessé.

Code : Tout sélectionner

#%PAM-1.0

auth        include     system-local-login
-auth       optional    pam_gnome_keyring.so
account     include     system-local-login
session     include     system-local-login
-session    optional    pam_gnome_keyring.so auto_start





Merci pour votre aide !

Re: [RESOLU] - [login] Impossible depuis tty

Publié : lun. 25 févr. 2013, 23:37
par tuxce
C'est dommage de ne pas avoir vérifié ce que je t'ai indiqué :|

Parce que comme ça au pif, une des différences entre l'ancien pam.d/login et le nouveau et qu'il n'intègre pas pam_shells qui justement vérifie que le shell de ton utilisateur est présent dans /etc/shells .
Vu que le module pam_shells est utilisé par /etc/pam.d/system-login qui lui même est appelé par /etc/pam.d/system-local-login et ce dernier se trouvant dans /etc/pam.d/login et /etc/pam.d/slim, ça me paraît être plus qu'une piste.

Si on rajoute à ça que la seule différence entre les compte root, cnew et truc, c'est le shell utilisé ...

Re: [login] Impossible depuis tty (résolu)

Publié : mar. 26 févr. 2013, 09:31
par FoolEcho
+10 avec tuxce. :chinois:

Re: [login] Impossible depuis tty (résolu)

Publié : mer. 27 févr. 2013, 01:04
par JohnCool
Bonsoir,

Erf, je me sens un peu gêné là, j'avais zappé le premier message de tuxce… (je devais être en train d'éditer…).
Honte à moi parce que le problème vient pile de là :bravo: !

Du coup, j'ai plus aucun problème.

Est-ce que c'est moi qui est à l'origine de cet oubli durant la configuration de zsh ?
Ou bien il manque quelque chose dans la procédure d'installation et il faut faire remonter cela ?

Merci encore pour l'aide.

Bonsoir.

Re: [login] Impossible depuis tty (résolu)

Publié : mer. 27 févr. 2013, 10:54
par tuxce
Salut, à mon avis, il a du y avoir un changement dans /etc/shells, et t'as du prendre le pacnew sans rajouter le zsh.
/bin/zsh est rajouté par le .install du paquet zsh.

(mais c'est qu'une supposition)