Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/09/2010, à 13:24

tophe59760

problème avec libnss-ldap

Bonjour,

Je me permets d'ouvrir un post parallèle à mon post principal :

http://forum.ubuntu-fr.org/viewtopic.php?id=415393

Lorsque je souhaite installer (via apt-get) ou configurer (via dpkg-reconfigure) le module libnss-ldap, j'obtiens le message suivant :

update-rc.d : warning: libnss-ldap start runlevel arguments ( 2 3 4 5) do not match LSB default-start values (none)

J'ai essayer de le désinstaller et le ré-installer toujours pareil. Du coup, linux ne me crée pas le fichier libnss-ldap.conf qui m'est nécessaire pour la suite de mon projet.

Je travaille sur une ubuntu serveur 10.04 à jour fraichement installée.

Je ne comprends pas du tout le sens de ce message d'erreur. Je débute sous linux et je n'ai pas trouvé de solutions.

Merci à celles et ceux qui prendront le temps de me répondre et de m'expliquer clairement de quoi il retourne.

Dernière modification par tophe59760 (Le 03/09/2010, à 13:25)

Hors ligne

#2 Le 03/09/2010, à 22:01

chopinhauer

Re : problème avec libnss-ldap

tophe59760 a écrit :

update-rc.d : warning: libnss-ldap start runlevel arguments ( 2 3 4 5) do not match LSB default-start values (none)

Ce n'est pas une erreur, c'est un avertissement.

tophe59760 a écrit :

J'ai essayer de le désinstaller et le ré-installer toujours pareil. Du coup, linux ne me crée pas le fichier libnss-ldap.conf qui m'est nécessaire pour la suite de mon projet.

La configuration est dans le fichier /etc/ldap.conf selon la page de manuel de nss_ldap. Cela a du changer dans le temps.


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#3 Le 06/09/2010, à 15:36

tophe59760

Re : problème avec libnss-ldap

Merci pour ta réponse.

Logiquement donc il suffit juste de renseigner le fichier de configuration /etc/ldap.conf

Voilà les renseignements que j'ai inséré dans le ldap.conf, je n'ai touché à rien d'autre :

host                    ldap.univ-xxx.fr
base                   ou=people,dc=univ-xxx,dc=fr
uri                      ldap://"@IPdu serveur LDAP"
ldap_version         3
bind_policy           soft

Cela me semble bon, dites-moi si vous voyez une erreur.

Lorsque j'effectue la commande getent passwd, j'obtiens la liste des comptes locaux : root, daemon, bin, sys, sync, avahi, ... alors que je devrais obtenir la liste des comptes logés sur mon serveur LDAP (qui est une machine différente que mon serveur SAMBA) c'est bien cela ?

Où me suis-je trompé ?

Merci d'avance pour vos précieux conseils.

Dernière modification par tophe59760 (Le 06/09/2010, à 15:37)

Hors ligne

#4 Le 06/09/2010, à 18:19

chopinhauer

Re : problème avec libnss-ldap

tophe59760 a écrit :

host                    ldap.univ-xxx.fr
base                   ou=people,dc=univ-xxx,dc=fr
uri                      ldap://"@IPdu serveur LDAP"
ldap_version         3
bind_policy           soft

Cela me semble bon, dites-moi si vous voyez une erreur.

host et uri sont complémentaires, donc pas besoin d'utiliser les deux au même temps. 'base' c'est plutôt 'dc=univ-xxx,dc=fr', 'ou=People,' sera préfixé automatiquement par ldap-nss lors de la recherche d'un compte.

Il vous manquent probablement les options pour vous authentifier avec la base de données LDAP (genre 'binddn' et 'bindpw', mais cela dépend vraiment de la politique d'accès au serveur LDAP).

tophe59760 a écrit :

Lorsque j'effectue la commande getent passwd, j'obtiens la liste des comptes locaux : root, daemon, bin, sys, sync, avahi, ... alors que je devrais obtenir la liste des comptes logés sur mon serveur LDAP (qui est une machine différente que mon serveur SAMBA) c'est bien cela ?

Peut-être une erreur d'authentification ou la base de donnée n'est pas dans le format attendu. Vous pouvez essayer de regarder d'abord avec la commande ldapsearch (du paquet ldap-utils), par exemple avec:

ldapsearch -h ldap.univ-xxx.fr -b "dc=univ-xxx,dc=fr" '(objectClass=*)'

Si la recherche marche bien, pouvez-vous poster les attributs d'une entrée type (après les avoir anonymisé)?


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#5 Le 08/09/2010, à 13:32

tophe59760

Re : problème avec libnss-ldap

Bonjour Chopinhauer,

J'ai suivi vos conseils pour le fichier /etc/ldap.conf j'ai donc commenté la ligne host et j'ai laissé la ligne uri avec l'ip du serveur LDAP.

De même, j'ai reconfiguré la ligne base en otant le "ou=people"

Pour le bind, mon collègue qui gère LDAP m'a indiqué qu'on pouvait lire la base anonymement donc pas besoin d'identifiant à priori.

Je résume voici le etc/ldap.conf actuel :

base                  dc=univ-xxx,dc=fr
uri                      ldap://"@IPdu serveur LDAP"
ldap_version         3
bind_policy           soft

Si la recherche marche bien, pouvez-vous poster les attributs d'une entrée type (après les avoir anonymisé)?

J'ai tapé exactement votre commande (en ajoutant -x pour une connexion simple sinon cela ne fonctionnait pas) J'ai donc lancé une recherche sur l'utilisateur fictif dupont.

ldapsearch -x -h ldap.univ-xxx.fr -b "dc=univ-xxx,dc=fr" uid=dupont

Voici ce que LDAP répond :

extended LDIF
#
# LDAPv3
# base <dc=univ-xxx,dc=fr> with scope subtree
# filter: uid=dupont
# requesting: ALL
#

# dupont, people, univ-xxx.fr
dn: uid=dupont,ou=people,dc=univ-xxx,dc=fr
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: eduPerson
objectClass: supannPerson
objectClass: ULCOPerson
sn: Dupont
givenName: Jean
uid: dupont
mail: Jean.Dupont@univ-xxx.fr
eduPersonPrincipalName: Jean.Dupont@univ-xxx.fr
UlcoMailAlias: Jean Dupont
UlcoMailDest: dupont
UlcoMailRevAlias: dupont
facsimileTelephoneNumber: +33 3 x x x x
cn: Dupont Jean
displayName: Jean Dupont
eduPersonAffiliation: EMPLOYEE
eduPersonAffiliation: MEMBER

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

J'espère que ces informations vous aidront à diagnostiquer mon problème.

J'ouvre une parenthèse sur ce problème (je ne voudrais pas vous noyer dans un millier de problèmes en même temps) mais quelle est la différence entre les fichiers :

/etc/ldap.conf et /etc/ldap/ldap.conf ???

Voici le contenu de mon fichier /etc/ldap/ldap.conf qui ne contient que 2 lignes décommentées.

BASE    dc=univ-xxx,dc=fr
URI    ldap://"@IP du serveur LDAP":389

Merci, j'attends de vous lire avec impatience.

Dernière modification par tophe59760 (Le 08/09/2010, à 13:34)

Hors ligne

#6 Le 09/09/2010, à 00:27

chopinhauer

Re : problème avec libnss-ldap

tophe59760 a écrit :

J'ai tapé exactement votre commande (en ajoutant -x pour une connexion simple sinon cela ne fonctionnait pas) J'ai donc lancé une recherche sur l'utilisateur fictif dupont.

Dans ce cas vous allez devoir mettre les paramètres 'binddn' et 'bindpw' dans votre /etc/ldap.conf pour que le client nss_ldap puisse se connecter à votre base de données.

tophe59760 a écrit :

# dupont, people, univ-xxx.fr
dn: uid=dupont,ou=people,dc=univ-xxx,dc=fr
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: eduPerson
objectClass: supannPerson
objectClass: ULCOPerson
sn: Dupont
givenName: Jean
uid: dupont
mail: Jean.Dupont@univ-xxx.fr
eduPersonPrincipalName: Jean.Dupont@univ-xxx.fr
UlcoMailAlias: Jean Dupont
UlcoMailDest: dupont
UlcoMailRevAlias: dupont
facsimileTelephoneNumber: +33 3 x x x x
cn: Dupont Jean
displayName: Jean Dupont
eduPersonAffiliation: EMPLOYEE
eduPersonAffiliation: MEMBER

Votre base de donnée ne contient pas les informations nécessaires pour la connexion utilisateur.

Un compte UNIX a besoin d'un objet de type posixAccount, donc au moins de 'cn', 'uid', le numéro utilisateur et groupe UNIX 'uidNumber' et 'gidNumber' et l'emplacement du répertoire maison 'homeDirectory'.

Si d'autres champs contiennent ces données, vous pouvez configurer les équivalences avec 'nss_map_objectclass' et 'nss_map_attribute' dans /etc/ldap.conf. Il y a déjà plusieurs exemples commentés dans le fichier.

Je ne sais pas qu'est-ce que votre opérateur va utiliser pour activer les comptes, mais les smbldap-tools peuvent remplir tous les champs nécessaires pour avoir un compte UNIX (et Samba).

L'alternative à la création immédiate des comptes UNIX est créer des comptes Samba (dont le schéma se trouve dans les HOW-TO Samba) par exemple avec smbpasswd et laisser smbldap-adduser faire l'effort de créer le compte UNIX correspondant lors du premier login de l'utilisateur.

tophe59760 a écrit :

/etc/ldap.conf et /etc/ldap/ldap.conf ???

Le premier est le fichiers de configuration de nss-ldap, le deuxième le fichier de configuration par défaut de tous les clients LDAP.

PS: un exemple d'entrée LDAP pour un utilisateur UNIX est:

dn: cn=Test User,ou=People,dc=example,dc=com
cn: Test User
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
sn: User
uid: test
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/test

Dernière modification par chopinhauer (Le 09/09/2010, à 00:30)


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#7 Le 10/09/2010, à 12:31

tophe59760

Re : problème avec libnss-ldap

Bonjour,

Désolé de vous avoir laissé sans nouvelles.

Hier j'ai potassé le chapitre 11 du Howto dont vous m'avez indiqué le lien.

Après concertation avec mon collègue, nous avons décidé de répliquer la branche People (contenant les étudiants) du LDAP maitre sur mon serveur de test.

Je me retrouve donc avec un serveur ldap fonctionnel sur la même machine que samba.

Depuis ce matin, j'ai :

- copié le samba.schema dans mon répertoire /etc/ldap/schema

- modifié le /etc/ldap.conf

            base dc=univ-xxx,dc=fr
            uri ldap://127.0.0.1
            binddn cn=Manager,dc=univ-xxx,dc=fr
            bindpw secret
            bind_policy soft

- modifié le /etc/ldap/ldap.conf

            BASE     dc=univ-xxx,dc=fr
            URI       ldap://127.0.0.1:389


- modifié le /etc/ldap/slapd.conf en ajoutant ou modifiant les lignes suivantes (en me basant sur le HOWTO)

include           /etc/ldap/schema/core.schema
include           /etc/ldap/schema/cosine.schema
include           /etc/ldap/schema/inetorgperson.schema
include           /etc/ldap/schema/nis.schema
include           /etc/ldap/schema/samba.schema

- J'ai téléchargé et installé les outils smbldap-tools

- J'ai modifié mon /etc/samba/smb.conf en reprenant le modèle du HOWTO ainsi qu'en y ajoutant des infos trouvés dans un smb.conf provenant d'un autre tutoriel expliquant le même genre de procédure que ce que j'essaye de réaliser :

http://www.tuxnetworks.com/configs/smb.conf

[global]

security = user
encrypt passwords = yes
netbios name = SRVSAMBA
workgroup = SAMBA

ldap admin dn = "cn=Manager,dc=univ-xxx,dc=fr"
ldap ssl = no

passdb backend = ldapsam:ldap://localhost
ldap delete dn = no

ldap user suffix = ou=People
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers

ldap suffix = dc=univ-xxx,dc=fr

add user script = /usr/sbin/smbldap-useradd -m "%u"
delete user script = /usr/sbin/smbldap-userdel "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"

add machine script = /usr/sbin/smbldap-useradd -w "%u"

Je pense que je suis proche du but je ne sais pas ce que vous en pensez, il y a encore les modules PAM à configurer je pense.

Cependant, il y a des passages dans le HOWTO que j'ai du mal à saisir notamment le chapitre "Initialize the LDAP Database" (situé vers la fin). D'autres sites parlent du fait de convertir cetains schema en LDIF, d'utiliser l'outil slapcat. Je ne comprend pas le principe ni l'utilité. Y a-t-il un intérêt dans mon cas précis ?

Pouvez-vous me donner votre avis sur ce que j'ai fait, suis-je dans la bonne voie et pouvez-vous me corriger s'il vous plait et/ou m'apporter des compléments d'informations sur ce qu'il me reste à faire, d'après vous.

J'ai du mal à saisir le cheminement du processus complet d'authentification entre le moment où l'étudiant souhaite se loguer et le moment où sa session s'ouvrira.

Sauriez-vous me la résumer étape par étape pour que je cerne mieux le processus ?

D'après ce que je crois avoir compris :

1) l'user (lors de sa première connexion) tape son login et mot de passe sur la demande d'ouverture de session xp et valide par "entrée"

2) Samba lit son smb.conf et crée l'utilisateur (UNIX ??? samba ???) à l'aide des lignes :
add user script = /usr/sbin/smbldap-useradd -m %u

il crée le compte machine à l'aide du script add machine

Il sait qu'il doit stocker ces infos dans les ou=computers et ou=users à l'aide des lignes :
ldap machine suffix et ldap user suffix

3) samba interroge NSS pour savoir où il peut trouver la source de données d'identification, NSS lui répond LDAP

4) samba se réfère au /etc/ldap.conf pour savoir où trouver une base LDAP

5) Le /etc/ldap.conf lui dit que la base se trouve en local

6) Samba va interroger la base LDAP locale

7) LDAP connaitra le schéma nécessaire contenant les informations utiles à samba à l'aide du fichier /etc/ldap/slapd.conf

et après çà devient confus, déjà pour ces étapes là je me plante sans doute complètement, veuillez m'excuser de tant d'incompréhension de ma part et tenter de me corriger si vous en avez encore le temps et la patience.

- A quel moment intervient PAM ?
- A quel moment et grâce à quoi la base LDAP saura fournir les infos du POSIX account dont vous me parliez il y a quelques jours (c'est à dire le cn, GID, etc ...). Comment saura-t-elle les créer ?

Merci infiniment !!

Dernière modification par tophe59760 (Le 10/09/2010, à 16:31)

Hors ligne

#8 Le 10/09/2010, à 16:25

tophe59760

Re : problème avec libnss-ldap

J'ai pu continuer un peu cet après-midi la config du serveur entre deux appels

Conformément aux indications du HOWTO, j'ai ajouté le mot de passe de l'admin du LDAP dans le secrets.tdb via la commande :

sudo smbpasswd -w secret

et j'obtiens : setting stored password for "cn=manager,dc=univ-xxx,dc=fr" in secrets.tdb

Tout va bien donc.

J'ai voulu ajouter une machine XP domaine samba, mais après avoir indiqué le login root ainsi que le mot de passe, XP me répond :

Le domaine spécifié n'existe pas.

Je me suis souvenu que je n'avais pas ajouté le mot de passe root dans le smbpasswd, ce que je m'empresse de faire :

sudo smbpasswd -a root

et là j'obtiens le message suivant :

add_new_domain_info: failed to add domain dn= sambaDomainName=SAMBA,dc=univ-xxx,dc=fr with: Server is unwilling to perform
    shadow context; no update referral
smbldap_search_domain_info: Adding domain info for SAMBA failed with NT_STATUS_UNSUCCESSFUL
New SMB password:

Je tape malgré tout le mot de passe et le confirme et j'obtiens ensuite ceci :

Failed to add entry for user root.

Ce n'est pas simple tout çà, un chemin semé d'embûches. Je continue mes recherches, si vous avez une idée Mr chopinhauer je suis preneur.

Bon week-end !

Dernière modification par tophe59760 (Le 10/09/2010, à 16:28)

Hors ligne

#9 Le 10/09/2010, à 17:34

chopinhauer

Re : problème avec libnss-ldap

tophe59760 a écrit :

Je pense que je suis proche du but je ne sais pas ce que vous en pensez, il y a encore les modules PAM à configurer je pense.

Je m'aperçois au fait que PAM se configure très rapidement sous Ubuntu avec un:

sudo pam-auth-update
tophe59760 a écrit :

J'ai du mal à saisir le cheminement du processus complet d'authentification entre le moment où l'étudiant souhaite se loguer et le moment où sa session s'ouvrira.

1. L'étudiant 'dupont' entre son login et mot de passe. La machine Windows XP va demander à Samba de l'authentifier en utilisant une méthode Windows.

2. Samba cherche dans LDAP un objet appelé uid=dupont,dc=univ-xxx,dc=fr de classe sambaSamAccount. Grâce à cet objet (un des deux attributs sambaLMPassword et sambaNTPassword) il pourra authentifier l'étudiant, transmettre à la machine XP le SID (numéro d'identification Windows genre S-1-0-0-42) du compte étudiant et probablement d'autres données: où est le répertoire maison de l'étudiant, le profil et ainsi de suite.

3. La machine Windows XP va demander des fichiers au serveur (dans les partages [netlogon] et [profiles]).

4. Quand un fichier est demandé Samba a besoin de contrôler les droits d'accès au fichier. Pour faire cela elle a besoin de choisir un utilisateur UNIX pour l'étudiant (sinon la machine XP pourrait accéder à tous les fichiers de tout le monde). Samba demande à NSS si il y a un utilisateur (UNIX) 'dupont' dans le système.

5. NSS regarde sa configuration et cherche un objet appelé uid=dupont,dc=univ-xxx,dc=fr de classe posixAccount.

6. Si il n'y a pas de tel utilisateur, Samba exécute (en tant que 'root') le script 'add user script'. Celui-là est censé créer l'utilisateur UNIX 'dupont'. Donc si smbldap-adduser est bien configuré, il va créer un objet de classe posixAccount dans LDAP. On retourne à 5.

7. Si un tel utilisateur existe NSS donne son UID et GID (numéro utilisateur UNIX et groupe d'appartenance) à Samba, qui pourra fournir (ou refuser de fournir si pas assez de droits) le fichier à la machine XP.


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#10 Le 10/09/2010, à 17:53

chopinhauer

Re : problème avec libnss-ldap

tophe59760 a écrit :

Ce n'est pas simple tout çà, un chemin semé d'embûches. Je continue mes recherches, si vous avez une idée Mr chopinhauer je suis preneur.

La commande smbldap-useradd avec l'option '-w' peut être maintenant utilisée pour ajouter des comptes machine (cf. sa page de manuel.


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#11 Le 13/09/2010, à 17:08

tophe59760

Re : problème avec libnss-ldap

Bonjour Mr Chopinhauer,

Je m'aperçois au fait que PAM se configure très rapidement sous Ubuntu avec un sudo pam-auth-update

Effectivement, c'est devenu très simple.

Aujourd'hui en parcourant le net, je me suis aperçu que je ne possédais pas les fichiers :

/etc/smbldap-tools/smbldap.conf
/etc/smbldap-tools/smbldap_bind.conf

Je les ai donc crées en y ajoutant les lignes suivantes (je ne suis pas sur de la syntaxe ni des champs à remplir) :



Le smbldap_bind.conf :

slaveDN="cn=manager,dc=univ-xxx,dc=fr"
slavePw=secret
masterDN="cn=manager,dc=univ-xxx,dc=fr"
masterPw=secret





Le smbldap.conf : (mon nom de domaine est samba)

# Configuration generale
SID=\"S-1-5-21-92901652-1806903362-3759253303"
sambaDomain=\"univ-xxx.fr\"


slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
verify="require"
suffix="dc=univ-xxx,dc=fr"

### A changer : yourdomain
usersdn="ou=people,${suffix}"
computersdn="ou=computers,${suffix}"
groupsdn="ou=groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
# sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
sambaUnixIdPooldn="sambaDomainName=samba,${suffix}"

### A changer : yourdomain
scope="sub"
hash_encrypt="SSHA"
crypt_salt_format="%s"

userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
#Nom d'affichage - utiliser smbldap-useradd -c
userGecos="User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
#Les mots de passe expirent dans 10ans
defaultMaxPasswordAge="3650"

with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"

with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"



Et à côté de çà,  je bute toujours pour ajouter le compte unix root avec smbpasswd :

Si j'exécute la commande : sudo smbpasswd -a root  il me demande d'entrer le mot de passe de root et de le confirmer mais j'obtiens :

Failed to add entry for user root.



Si j'exécute la commande : sudo smbldap-useradd -a root j'obtiens :

Error looking for next uid in sambaDomainName=samba,dc=univ-xxx,dc=fr:No such object at /usr/share/perl5/smbldap_tools.pm line 1174, <DATA> line 466.


Je n'ai pas bien saisi la différence entre ces deux commandes.

En vous remerciant mille fois. Bonne soirée.

Dernière modification par tophe59760 (Le 13/09/2010, à 17:13)

Hors ligne

#12 Le 14/09/2010, à 00:25

chopinhauer

Re : problème avec libnss-ldap

Vous avez besoin d'un coup de smbldap-populate. Je viens de tester et cette commande fait pas mal de boulot: il crée les OU nécessaires, il ajoute root et nobody à la base de données LDAP, il ajoute des groupes d'utilisateur qui se trouvent d'habitude sur un système Windows et il les mets en relation avec les groupes UNIX.

La commande crée finalement cette entrée sambaDomainName=samba,dc=univ-xxx,dc=fr qui contient les premiers numéros UID, GID (pour UNIX) et RID (pour Samba/Windows) disponibles.

Dernière modification par chopinhauer (Le 14/09/2010, à 00:33)


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#13 Le 14/09/2010, à 16:04

tophe59760

Re : problème avec libnss-ldap

Bonjour,

Je ne sais pas si c'est la fatigue, l'exaspération d'une suite de messages d'erreurs sans fin ou l'impression d'avancer d'un pas et d'en reculer de deux tandis que la date butoir se rapproche à grands pas, mais aujourd'hui j'ai envie de tout envoyer ballader.

Je vous explique :

Je tente la comande smbldap-populate, j'obtiens le message suivant :

Populating LDAP directory for domain \"univ-xxx.fr\" (\"S-1-5-21-92901652-1806903362-3759253303")
(using builtin directory structure)

adding new entry: dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <DATA> line 466.
entry ou=people,dc=univ-xxx,dc=fr already exist.
entry ou=groups,dc=univ-xxx,dc=fr already exist.
entry ou=computers,dc=univ-xxx,dc=fr already exist.
adding new entry: ou=Idmap,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 27.
adding new entry: uid=root,ou=people,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 55.
adding new entry: uid=nobody,ou=people,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 83.
adding new entry: cn=Domain Admins,ou=groups,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 95.
adding new entry: cn=Domain Users,ou=groups,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 106.
adding new entry: cn=Domain Guests,ou=groups,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 117.
adding new entry: cn=Domain Computers,ou=groups,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 128.
adding new entry: cn=Administrators,ou=groups,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 173.
adding new entry: cn=Account Operators,ou=groups,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 195.
adding new entry: cn=Print Operators,ou=groups,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 206.
adding new entry: cn=Backup Operators,ou=groups,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 217.
adding new entry: cn=Replicators,ou=groups,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 228.
adding new entry: sambaDomainName=UNIV-XXX.FR,dc=univ-xxx,dc=fr
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 498, <GEN1> line 234.

Please provide a password for the domain root:
Only root can specify username

Comment dois-je faire pour "provide a password for the domain root" ??

J'ai bien tenté la commande : smbldap-useradd -a -P root

J'obtiens ceci :

Error looking for next uid in sambaDomainName=UNIV-LITTORAL.FR,dc=univ-littoral,dc=fr:No such object at /usr/share/perl5/smbldap_tools.pm line 1174, <DATA> line 466.

Quand je cherche des infos sur l'erreur ci-dessus, ll est dit sur plusieurs forums qu'il faut modifier dans le fichier /etc/smbldap-tools/smbldap.conf la ligne suivante :

commenter la ligne : # sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
et
ajouter la ligne : sambaUnixIdPooldn="sambaDomainName=UNIV-XXX.FR,${suffix}"

Mais j'obtiens toujours le même message d'erreur malgré un re-démarrage des services.


J'ai l'impression de jouer aux poupées russes, il y a toujours un problème caché derrière un problème et ainsi de suite, çà devient lassant.

Merci en tout cas de votre aide fidèle et précieuse.

Bonne soirée

Dernière modification par tophe59760 (Le 14/09/2010, à 16:05)

Hors ligne

#14 Le 16/09/2010, à 17:12

tophe59760

Re : problème avec libnss-ldap

Tout s'est finalement en arrêtant l'annuaire ldap et en faisant un slapindex

Après re-démarrage et un smbldap-populate, il a bien créer les différents groupes.

J'ai également pu ajouter le compte root sans qu'il ne râle en faisant un :

smbldap-useradd -a -P root

Par contre, je pensais pouvoir ajouter une machine au domaine derrière cela mais XP me renvoie "utilisateur introuvable"

Je spécifie pourtant bien mon utilisateur root dans mon domaine samba.

Hors ligne

#15 Le 20/09/2010, à 00:05

chopinhauer

Re : problème avec libnss-ldap

tophe59760 a écrit :

Je spécifie pourtant bien mon utilisateur root dans mon domaine samba.

Pas de UNIX sous la main au moment, mais pour ajouter un compte machine c'est 'smbldap-adduser -m' je crois.


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#16 Le 20/09/2010, à 09:17

tophe59760

Re : problème avec libnss-ldap

Bonjour,

Oui j'ai finalement trouvé comment faire vendredi, en ajoutant à la main le compte machine avec la commande que vous m'indiquez, et là le XP s'est ajouté au domaine immédiatement.

Question 1 : Je pensais que le script "add machine" dans le smb.conf aurait ajouté automatiquement le compte ordinateur dans le LDAP ?

J'ai tenté d'ouvrir une session sur mon poste XP ajouté au domaine.

Avec un utilisateur crée manuellement via useradd puis smbpasswd -a (donc qui possède un compte unix et samba) pas de problème !!

Par contre, j'ai tenté avec un utilisateur de l'annuaire LDAP, çà ne fonctionne pas. Je suppose que cela est du au fait que ces utilisateurs ne possèdent pas encore de compte SAMBA. Est-ce bien cela ?

Question 2 : Si oui, comment vais-je faire pour créer automatiquement le compte samba des utilisateurs de l'annuaire (plus de 4000) ?

Comment dois-je faire à présent ?

Merci

Devrai-je utiliser le commande smbldap

Hors ligne

#17 Le 20/09/2010, à 11:28

chopinhauer

Re : problème avec libnss-ldap

tophe59760 a écrit :

Question 1 : Je pensais que le script "add machine" dans le smb.conf aurait ajouté automatiquement le compte ordinateur dans le LDAP ?

Ce script marche comme le 'add user', il crée automatiquement un compte UNIX pour la machine, si un compte Samba correspondant existe déjà.

tophe59760 a écrit :

Par contre, j'ai tenté avec un utilisateur de l'annuaire LDAP, çà ne fonctionne pas. Je suppose que cela est du au fait que ces utilisateurs ne possèdent pas encore de compte SAMBA. Est-ce bien cela ?

C'est probablement cela. Vous pouvez le vérifier avec un 'ldapsearch' pour voir si le uid de l'utilisateur a une objectClass de sambaSamAccount.

tophe59760 a écrit :

Question 2 : Si oui, comment vais-je faire pour créer automatiquement le compte samba des utilisateurs de l'annuaire (plus de 4000) ?

Une fois la domaine Windows mise en place, il y a une certaine compatibilité entre les outils de gestion Windows et le serveur Samba.

En alternative on peut faire tout avec des commandes UNIX. Par exemple:

ldapsearch -b people.univ-xxx.fr 'objectclass=person' uid

plus les paramètres de connexion va vous donner une sortie du genre 'uid: dupont'. Alors

ldapsearch -b people.univ-xxx.fr 'objectclass=person' uid ¦ cut -d' ' -f2

va vous donner juste les uid à ajouter et il suffit un

for i in $(la commande precedente); do smbpasswd -a "$i"; done

pour ajouter exécuter smbpasswd pour chaque utilisateur.


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#18 Le 20/09/2010, à 14:14

tophe59760

Re : problème avec libnss-ldap

Lorsque j'effectue un :

ldapsearch -x -b ou=people,dc=univ-xxx,dc=.fr 'objectclass=person' uid

J'obtiens tous les uid de l'annuaire LDAP (plusieurs milliers) sous la forme suivante :

# dupont, people, univ-xxx.fr
dn: uid=dupont,ou=people,dc=univ-xxx,dc=fr
uid: dupont

Jusque là tout va bien.

Ensuite, j'exécute votre commande :

ldapsearch -x -b ou=people,dc=univ-xxx,dc=fr 'objectclass=person' uid ¦ cut -d' ' -f2

mais j'obtiens le message suivant (je suppose qu'il y a une erreur dans la syntaxe) :

ldapsearch: unable to parse debug value " "

Dernière modification par tophe59760 (Le 20/09/2010, à 14:15)

Hors ligne

#19 Le 20/09/2010, à 15:08

tophe59760

Re : problème avec libnss-ldap

pour ajouter exécuter smbpasswd pour chaque utilisateur.

Je ne comprends pas ! Peut-on automatiser ou pas ?

Les utilisateurs du LDAP possèdent un mot de passe crypté que je ne connais pas.

J'aimerais qu'un script puisse récupérer le mot de passe crypté de l'utilisateur LDAP et l'ajouter automatiquement dans le compte SAMBA de l'utilisateur afin que ce dernier puisse se connecter sur une machine XP du domaine.

Dernière modification par tophe59760 (Le 21/09/2010, à 09:09)

Hors ligne

#20 Le 21/09/2010, à 14:43

tophe59760

Re : problème avec libnss-ldap

En fouillant sur le net, j'ai cru comprendre que le hashage du mot de passe LDAP est du MD5 et que celui des comptes Samba est du NTLM.

Ces deux cryptages étant non réversibles, Samba est incapable de déduire le mot de passe d'un utilisateur LDAP afin de générer automatiquement le même mot de passe pour son compte samba.

Dites-moi si je me trompe mais donc il faudra nécessairement re-passer par une phase de saisie du mot de passe utilisateur pour créer le compte samba de chaque utilisateur ???

L'annuaire LDAP actuel ne possède souvenez-vous ni champ POSIX ni champ SambaSAMaccount

Peut-on imaginer un formulaire en ligne demandant à l'utilisateur de re-saisir ses identifiants et mot de passe, formulaire qui ferait appel à la commande smbldap -a -P pour créer les champs adéquats dans l'annuaire ; ceci pour aboutir à notre but final : que l'utilisateur puisse ouvrir une session windows via SAMBA et LDAP.

J'attends vos avis et conseils impatiemment.

Merci

Hors ligne

#21 Le 24/09/2010, à 04:08

chopinhauer

Re : problème avec libnss-ldap

tophe59760 a écrit :

# dupont, people, univ-xxx.fr
dn: uid=dupont,ou=people,dc=univ-xxx,dc=fr
uid: dupont

Dans ce cas un:

ldapsearch -x -b ou=people,dc=univ-xxx,dc=.fr 'objectclass=person' uid | grep '^uid:' | cut -d' ' -f2

vous donnera la liste des uid (ldapsearch imprime ce que vous avez vu, grep sélectionne les lignes qui commencent par 'uid:' et finalement cut sélectionne la deuxième partie de la ligne séparée par un espace).


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#22 Le 24/09/2010, à 04:36

chopinhauer

Re : problème avec libnss-ldap

tophe59760 a écrit :

Dites-moi si je me trompe mais donc il faudra nécessairement re-passer par une phase de saisie du mot de passe utilisateur pour créer le compte samba de chaque utilisateur ???

Le compte Samba peut-être créé en avance, par contre, vu que l'utilisateur n'aura pas de mot de passe, il ne pourra pas se logguer. :-)

C'est effectivement un problème. Par contre vu que le mot de passe déjà présent dans le répertoire LDAP sert certainement à accéder à un service, on peut demander aux étudiants mêmes d'activer leur compte Samba: ils entrent leur mot de passe dans un formulaire, celui-ci est contrôlé contre le mot de passe MD5 et un mot de passe NTLM est engendré.

Dernière modification par chopinhauer (Le 24/09/2010, à 21:39)


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#23 Le 27/09/2010, à 10:07

tophe59760

Re : problème avec libnss-ldap

Je pense qu'on va devoir mettre en place ce système par contre une chose me pose problème (hé oui encore une lol) lorsque je souhaite créer "manuellement" en ligne de commandes le compte samba d'un utilisateur présent dans le LDAP en faisant :

smbldap-useradd -a dupont

j'obtiens le message d'erreur suivant :

failed to add entry: Already exists at /usr/sbin/smbldap-useradd line 441, <DATA> line 466.
failed to add entry: attribute 'displayName' cannot have multiple values at /usr/sbin/smbldap-useradd line 576, <DATA> line 466.

Effectivement le compte existe déjà dans le LDAP, la commande smbldap-useradd n'est sans doute pas appropriée pour ce que je souhaite réaliser.

Si nous adoptons la solution du formulaire pour créer un utilisateur "valide" (donc possédant compte UNIX + SAMBA), à quelles commandes unix devra faire appel le formulaire afin d'ajouter les champs samba et posix aux utilisateurs LDAP existant ?

Merci

Hors ligne

#24 Le 27/09/2010, à 19:49

chopinhauer

Re : problème avec libnss-ldap

smbldap devrait pouvoir ajouter des informations aussi à une entrée LDAP existante. C'est un script PERL, donc on peut regarder ce qui ne marche pas.

smbpasswd devrait pouvoir ajouter les utilisateurs Samba sans problème, puis smbldap devrait pouvoir créer le compte Posix automatiquement lors de la première connexion dans Samba.

Remarque: les comptes Posix n'ont pas besoin d'avoir un mot de passe valide, car les utilisateurs ne vont jamais se connecter directement au serveur.


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#25 Le 28/09/2010, à 11:51

tophe59760

Re : problème avec libnss-ldap

En tapant la commande :

sudo smbpasswd -a dupont

il me demande :

New SMB password puis Retype New SMB password

mais lorsque je confirme le mot de passe il m'affiche :

ldapsam_add_sam_account: failed to modify/add user with uid = dupont (dn = uid=dupont,ou=people,dc=univ-xxx,dc=fr)
Failed to add entry for user dupont.

Ce n'est pas très parlant, où puis-je aller fouiller pour trouver une réponse plus éloquente à ce problème ? Avez-vous une idée à quoi cela peut-être du ?

Remarque: les comptes Posix n'ont pas besoin d'avoir un mot de passe valide, car les utilisateurs ne vont jamais se connecter directement au serveur.

Je pensais que les utilisateurs auraient eu besoin du compte POSIX ne serait-ce que pour avoir accès aux partages UNIX de dossiers mis en place via Samba. Aurais-je mal saisi ?

Merci infiniment pour votre aide depuis ces dernières semaines. J'en apprends énormément grâce à votre aide.

Dernière modification par tophe59760 (Le 28/09/2010, à 11:53)

Hors ligne