vérification authentification utilisateur

Bonjour,

je cherche le moyen de vérifier dans un script éxécuté par root qu’un couple identifiant mot de passe est valide

la gestion des utilisateurs n’est pas gérée par ldap

mes infos identifiant/mot de passe proviennent de :
QUI=$(cat /media/key_secure/.auth/$HOSTNAME-id )
PW=$(ccrypt -c /media/key_secure/.auth/$HOSTNAME-pw -k chemin_vers_ma_clef_dsa)

merci de toutes vos idées.

Tu peux utiliser les bases de données Berkeley si cela correspond à tes besoin.

en fait je voudrais trouver un système équivalent à ce que je fais sur la station utilisant un annuaire ldap, mais mon portable lui n’en utilise pas, donc, il me faut changer de système de vérification de l’identité.

    ldapwhoami -x -D uid=$QUI,ou=Users,dc=chc -w $PW -h monserveur
    if [ $? == 0 ]
    then
      echo "utilisateur valide"
   else
     echo "utilisateur non valide"
   fi 

bien évidemment les echo seront remplacés

dans l’idéal, la solution s’appuie sur pam, pour être indépendent de la machine

votre solution avec les bases berkeley peut elle assurer cette fonctionnalité?

la commande “libpam-modules: /sbin/unix_chkpwd” me semblait correspondre au besoin, si ce n’est qu’elle ne peut pas être appelée directement, (je ne vois d’ailleur pas comment elle peut fonctionner)

ça ne serait pas plutot un sujet de prog ça ? ça n’a pas vraiment sa place dans le support, si ?

sinon: man unix_chkpwd peut être

Si j’ai bien compris tu veux que root puisse executer un script après vérification que le couple user/password présent sur ta clef soit cohérent. Le problème étant que pour des postes différents tu n’a pas les mêmes configurations, donc pas ldap.

Les bases Berkeley te permettraient simplement de stocker ton couple login/password sur ta clef sans que ce soit un fichier texte.

Autrement, je pensais à mettre en place une clef gpg. Tu possèdes la clef publique sur chaque poste, et tu vérifies que la signature d’un fichier présent sur le clef est valide.
Tu en penses quoi ?

prends cette page de manuel là elle est plus exploitable:
linux.die.net/man/8/unix_chkpwd

la solution de la clef gpg me parait pas mal du tout

je vais regarder de ce côté là je pense

(le script est prévu pour démarrer automatiquement une session X lorsque que la clef est pluguée et que le couple identifiant/mot de passe est valide. deconnexion de l’utilisateur lors du retrait de la clef. pour l’instant la déco est extrêmement violente)

voilà je l’ai fait avec gpg2,

je pense que la vérification de signature est suffisante, mais je suis ouvert à toute suggestion d’amélioration;

le descriptif de mes manipulations si cela vous interresse : http://hypercube.dynalias.org/serendipity/index.php?/archives/7-Une-clef-usb-pour-se-connecter-automatiquement.html

Sympa …
pourquoi la session quitte violemment ? c’est un choix ? (la réponse doit être dans les scripts, mais j’ai seulement parcouru).

[quote=“usinagaz”]Sympa …
pourquoi la session quitte violemment ? c’est un choix ? (la réponse doit être dans les scripts, mais j’ai seulement parcouru).[/quote]

Il tue le processus directement.

D’où ma question, comment faire pour quitter une session graphique proprement en ligne de commande ?

/etc/init.d/gdm stop (pour gdm), non ?

Ah oui :blush:
Mais dans le principe je cherchais plutôt quelque chose pour déconnecter un utilisateur, pas désactiver directement gdm. Je ne sais pas si cela est possible.

le problème ici est que l’on se passe de gdm (qui tourne sur le display 0 / vt7) parce que celui ci nécessite un couple identifiant mot de passe ( que l’on souhaite justement ne pas avoir à fournir)

donc la solution gdm n’est pas la bonne. n’en ayant pas trouvé (xfce4-session-logout --display=:2 ne trouve pas la session existante et de toutes manières propose à l’utilisateur une déconnexion.) mon optique était que lors du retrait de la clef, la session soit fermée.

si quelqu’un trouve une solution plus élégante, je suis preneur

oui ça doit être possible, dans la mesure où seul l’utilisateur de la clé usb à ouvert la seule session existante, ça change rien …

Sinon, comme j’imagine que la déconnection se fait sous UID root :

on doit pouvoir rajouter un délai …
malheureusement on peut pas notifer, reste à scripter ce “kill” en affichant un message à l’utilisateur l’invitant à sauvegarder ses données … non ?

Attend, on se passe de gdm, soit … mais pas de display manager, donc quel est le display manager paramétrer dans les session de xfce4 ??

pas tout à fait, avec ta commande x reste actif sur le display 2, et une reconnexion d’une clef n’entrainera pas de démarrage de session, c’est pour celà que j’ai choisi de stocker le pid du serveur X et de killer celui ci.

le résultat est similaire, l’utilisateur est déconnecté, mais dans mon cas, le système reste opérationnel.

personnellement, j’ai deux serveurs X de démarrés, celui par défaut avec GDM pour les utilisateurs n’ayant pas de clef et l’autre ‘à la demande’ pour ceux en ayant une.

[quote=“NaiosKAE”]pas tout à fait, avec ta commande x reste actif sur le display 2[/quote]tu as testé ? ça m’étonne … killer le pid de la session entraine surement la fin du serveur x … je me kill de ce pas … à toute :smiley:

je devrai tester en ouvrant un display 2 et un deuxième serveur X aussi donc … pas trop envie, parce que là c’est normal que mon display 0 et l’invite de login gdm se relance, c’est le display principal !

Il doit bien y avoir un moyen de fermer le display 2 seulement …
En tout cas, si tu as 2 X, je vois plus de souci, et je disais que ça serait bien
d’ajouter une notification de fermeture avec un délai, voilou … mais c’est qu’un détail.

je suis d’accord avec, toi, ce serais bien, mais je n’ai absolument aucne idée de comment faire ça

sinon, j’ai tester :

demander à fce de se fermer => reste le fond d’écran dans le serveur X :confused:

killer la session => reste le fond d’écran dans le serveur X :confused:

killer X => reste rien

bonjour,
j’ai lancé un deuxième X pour tester ça marche avec ceci pour killer le process:

à condition qu’on aie lancé le second X sur tty. Je pense que c’est ce que tu voulais non ?

ps: peux-tu me dire comment on lance un autre GDM sur tty c’est possible ?