IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

DEBIAN 6 - Authentification centralisée users en base mysql


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Par défaut DEBIAN 6 - Authentification centralisée users en base mysql
    Bonjour à tous,

    J'espère être dans la bonne partie du forum ...

    Je vous explique le soucis qui me fait m'arracher les cheveux depuis quelque jours :

    Mon boss m'a demandé de mettre en place un système d'authentification des utilisateurs centralisée, avec pour contrainte la non utilisation de OpenLDAP ou autre système d'annuaire. La solution retenue est donc le stockage des utilisateurs dans une base mysql.

    Après recherches sur mon ami google, j'a suivi les instructions sur ce tuto, assez bien fait :

    Config du serveur mysql : http://www.ixany.org/docs/NSS-PAM_My...nfig_Base.html

    Config du serveur client sur lequel les utilisateurs vont se connecter :
    http://www.ixany.org/docs/NSS-PAM_My...ig_Client.html

    Aucun problème particulier pour suivre les tutos et installer les serveurs.

    Là ou cela se gate :

    + je tente une connexion ssh en tant que root sur le serveur (client) => OK, cela fonctionne, root est localement connu sur le système.

    + Je tente une connexion avec un utilisateur stocké dans la base MySql => je me fais jetter par le serveur.

    Persévérant, je me reconnecte en root sur le serveur client, et je tente un
    su seb (seb étant mon utilisateur de test stocké dans le bdd mysql), et là, le serveur me répond :

    Votre compte a expiré, contactez votre administrateur système.
    su : echec d'authentification (ignoré)
    seb@ssosrv:/root$

    Je bloque sur ce problème, je ne sais plus ou chercher pour trouver une solution en rapport avec cette histoire de compte expiré.

    Merci de votre aide.

    Sébastien.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Et bien vu que tes utilisateurs sont stockés en DB, j'irais d'abord voir à ce niveau là dans la table user.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
      CREATE TABLE user (
          user_id int(11) NOT NULL auto_increment primary key,
          user_name varchar(50) DEFAULT '' NOT NULL,
          realname varchar(32) DEFAULT '' NOT NULL,
          shell varchar(20) DEFAULT '/bin/sh' NOT NULL,
          password varchar(40) DEFAULT '' NOT NULL,
          status char(1) DEFAULT 'N' NOT NULL,
          uid int(11) NOT NULL,
          gid int(11) DEFAULT '65534' NOT NULL,
          homedir varchar(32) DEFAULT '/bin/sh' NOT NULL,
          lastchange varchar(50) NOT NULL default '',
          min int(11) NOT NULL default '0',
          max int(11) NOT NULL default '0',
          warn int(11) NOT NULL default '7',
          inact int(11) NOT NULL default '-1',
          expire int(11) NOT NULL default '-1'
         );
    .

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Par défaut
    Bonjour Mygale 1978,

    Merci pour ta réponse, j'ai tenté différentes valeurs, mais rien ne change.

    Peut-être une autre idée ?

    Merci.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Activer le debugging et voir ce qu'il se passe dans les logs.

    Debugging et mode verbeux

    Même si la configuration de PAM est prise en compte rapidement (il faut généralement tout de même redémarrer les services tournant sur la machine après modification de la configuration PAM), mieux vaut redémarrer le serveur pour s’assurer que tout fonctionne encore correctement (attention à pouvoir toujours vous connecter).

    En cas de problème, il est possible d’activer le mode verbeux des différents types de services en passant l’argument verbose à 1. Les logs sont alors visibles dans le fichier /var/log/auth.log.
    Exemple de fichier de configuration /etc/pam-mysql.conf :

    ## décommenter pour activer les logs (vers auth.log)
    # verbose = 1

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Par défaut
    Les logs étaient déjà actives, j'avais effectivement décommenté la ligne Verbose
    du fichier.

    Dans les logs, je trouve :

    Jan 31 11:55:37 ssosrv su[1317]: pam_unix(su:account): account seb has expired (account expired)
    Jan 31 11:55:37 ssosrv su[1317]: Successful su for seb by root
    Jan 31 11:55:37 ssosrv su[1317]: + /dev/tty1 root:seb
    Jan 31 11:55:37 ssosrv su[1317]: pam_unix(su:session): session opened for user seb by root(uid=0)

    Mais là, ça ne me parle pas du tout ....

  6. #6
    Invité de passage
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 1
    Par défaut
    Salut,

    Ton problème n'est peut-être plus d'actualité, mais tant pis, ma réponse pourra peut-être servir quand même à quelqu'un.

    La ligne « pam_unix(su:account): account seb has expired (account expired) » indique que le compte a expiré, comme le dit Mygale1978, probablement à cause de la valeur du champ expire de la table users. Ce champ fournit la date d'expiration du compte en nombre de jours depuis le 1er janvier 1970.

    Tu peux vérifier les valeurs retournées sur ton serveur par le système NSS pour cet utilisateur avec la commande (à lancer par root):
    getent shadow seb
    Dans ton cas, tu dois avoir une valeur comprise entre 0 et 15765 (pour aujourd'hui), puisque le système considère ton compte comme expiré. Si ce n'est pas la même valeur que celle de la base de données, alors c'est qu'il y a un problème avec les requêtes que tu as mises dans /etc/libnss-mysql.cfg, en particulier pour les fonctions getspnam et getspent qui fournissent une valeur pour le champ expire. Si c'est bien la même valeur, alors changes-en: une valeur de -1 devrait a priori débloquer le compte et résoudre ton problème.

    Note que lorsque la valeur est -1 dans la base (c'est la valeur fournie par défaut pour ce champ dans l'exemple donné par les auteurs de nss-mysql), alors le champ renvoyé par getent est vide, ce qui indique que le compte n'est jamais considéré comme expiré.

Discussions similaires

  1. [Core] Authentification des users de la base avec hibernate
    Par alamako dans le forum Hibernate
    Réponses: 3
    Dernier message: 15/01/2013, 11h39
  2. [Conseil] Systeme d'authentification avec base MySql
    Par x-zolezzi dans le forum ASP.NET
    Réponses: 5
    Dernier message: 14/09/2010, 20h32
  3. authentification apache base mysql
    Par iaidokate dans le forum Apache
    Réponses: 1
    Dernier message: 05/02/2008, 20h50
  4. recréer une base mysql
    Par ryan dans le forum Administration
    Réponses: 2
    Dernier message: 27/06/2003, 23h04
  5. [Dev-C++] Accès à une base MySQL
    Par Beetlejuice dans le forum Dev-C++
    Réponses: 8
    Dernier message: 08/05/2003, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo