Modifications entre les versions 6 et 15 (s'étendant sur 9 versions)
Version 6 à la date du 2006-12-06 16:21:53
Taille: 1673
Éditeur: JérômeSantini
Commentaire: configuration du shell utilsateur
Version 15 à la date du 2006-12-11 16:43:36
Taille: 3474
Éditeur: JérômeSantini
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
= Création base de donneés = ## page was renamed from Tini/Notes/NssCnf
= Création de la base de données =
Ligne 39: Ligne 40:
 * 4 machines dans le centre de ressources (configuration manuelle)  * 8 machines dans le centre de ressources
 * les 3 machines cheikh, balla, zoser (configuration via auf-auth-mysql)
 * 10 machines infotèhe
 * sur nfs.refer.sn lui-même
 * suivi du nombre de connexion mysql simultanées sur http://bao.sn.auf/cgi-bin/grapher.cgi?target=/serveurs/nfs/mysql;view=mysql;ranges=d:w:m:y

= Sale problème de merde qui pue =

dans la fonction "lookup" de libnss-mysql-bg :
{{{
  cur_euid = geteuid ();
  D ("%s: restricted = %d, cur_euid = %u", FUNCNAME, restricted, cur_euid);
  if (restricted == ntrue && cur_euid != 0)
    DSRETURN (NSS_NOTFOUND)
}}}
et dans le getspnam :
{{{
#ifdef HAVE_NSS_H
  retVal = _nss_mysql_lookup (BYNAME, name, 0, conf.sql.query.getspnam,
                              ntrue, result, buffer, buflen, errnop,
                              _nss_mysql_load_shadow, &mresult, FUNCNAME);
#else
  retVal = _nss_mysql_lookup (BYNAME, NSS_ARGS(args)->key.name, 0,
                              conf.sql.query.getspnam, ntrue,
                              NSS_ARGS(args)->buf.result,
                              NSS_ARGS(args)->buf.buffer,
                              NSS_ARGS(args)->buf.buflen,
                              &NSS_ARGS(args)->erange,
                              _nss_mysql_load_shadow, &mresult, FUNCNAME);
  if (retVal == NSS_SUCCESS)
    NSS_ARGS(args)->returnval = NSS_ARGS(args)->buf.result;
#endif
}}}

résultat, seul root à accés aux mots de passe, les mécanismes "pam/shadow" genre unix_chkpwd sont tous cassés.

 * Faire un {{{chmod u+s /bin/unix_chkpwd}}} ? booof. comment le faire proprement de la "debian way" ? pas trouvé de dpkg-divert-perm
 * patcher libnss-mysql-bg : gmrpfl, un package de plus à gérer
 * une autre idée ?
Ligne 43: Ligne 82:
 * créer un auf-auth-msql pour remplacer le auf-auth-mysql : tester sur les machines du CDR  * signaler le bug à debian/ubuntu
 * faire un package patché sans le test en attendant
Ligne 45: Ligne 85:
 * documenter une fois que ça tourne bien : LibNssMysql

Création de la base de données

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.0.24_Debian-10sarge2-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database authnss;
Query OK, 1 row affected (0.02 sec)

mysql> grant select on authnss.* to nssroot@'%' identified by 'xxxxx';
Query OK, 0 rows affected (0.00 sec)

mysql> use authnss;
Database changed
mysql> source /root/auth.sql
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Modifs du /etc/mysql/my.cnf ::

  • écouter sur le réseau
  • activer log /var/log/mysql/mysql.log (à supprimer qd debug terminé)
  • virer /var/log/mysql/mysql-bin.log
  • set-variable=wait_timeout=10

Synchro /etc/{passwd,shadow} avec mysql

modification de admincomptes pour insérer des appels à [http://trac.sn.auf.org/guia/browser/contrib/migrations/auth-sql/import-passwd import-passwd] aux endroits appropriés. cf. [http://trac.sn.auf.org/guia/browser/contrib/migrations/auth-sql/LISZEMOI.txt LISEZMOI.txt] pour l'utilisation du machin.

note : le shell est configuré en statique à /bin/bash sur les postes clients. Et pris dans la colonne shell pour les serveurs. (reprise 1:1 du schéma nis)

Test

Sale problème de merde qui pue

dans la fonction "lookup" de libnss-mysql-bg :

  cur_euid = geteuid ();
  D ("%s: restricted = %d, cur_euid = %u", FUNCNAME, restricted, cur_euid);
  if (restricted == ntrue && cur_euid != 0)
    DSRETURN (NSS_NOTFOUND)

et dans le getspnam :

#ifdef HAVE_NSS_H
  retVal = _nss_mysql_lookup (BYNAME, name, 0, conf.sql.query.getspnam,
                              ntrue, result, buffer, buflen, errnop,
                              _nss_mysql_load_shadow, &mresult, FUNCNAME);
#else
  retVal = _nss_mysql_lookup (BYNAME, NSS_ARGS(args)->key.name, 0,
                              conf.sql.query.getspnam, ntrue,
                              NSS_ARGS(args)->buf.result,
                              NSS_ARGS(args)->buf.buffer,
                              NSS_ARGS(args)->buf.buflen,
                              &NSS_ARGS(args)->erange,
                              _nss_mysql_load_shadow, &mresult, FUNCNAME);
  if (retVal == NSS_SUCCESS)
    NSS_ARGS(args)->returnval = NSS_ARGS(args)->buf.result;
#endif

résultat, seul root à accés aux mots de passe, les mécanismes "pam/shadow" genre unix_chkpwd sont tous cassés.

  • Faire un chmod u+s /bin/unix_chkpwd ? booof. comment le faire proprement de la "debian way" ? pas trouvé de dpkg-divert-perm

  • patcher libnss-mysql-bg : gmrpfl, un package de plus à gérer
  • une autre idée ?

Actions suivantes

  • signaler le bug à debian/ubuntu
  • faire un package patché sans le test en attendant
  • mesurer l'impact sur le serveur mysql, suivre les perfs : en inférer le nbre max de process à configurer
  • documenter une fois que ça tourne bien : LibNssMysql

ZAO/Dakar/Configuration/AuthentificationClients (dernière édition le 2008-02-21 22:10:04 par localhost)