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 à import-passwd aux endroits appropriés. cf. 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
- 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 sudo chmod u+s /sbin/unix_chkpwd ? booof. avec dpkg-stateoverride
- patcher libnss-mysql-bg : gmrpfl, un package de plus à gérer
- une autre idée ?
Actions suivantes
- signaler le bug à ubuntu/libnss (debian à choisi la même option que pour auf-auth-mysql :
ini@mail-dakar:~$ ls -l /sbin/unix_chkpwd -r-sr-xr-x 1 root root 15000 2004-06-28 18:39 /sbin/unix_chkpwd
- 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