Pentru a putea folosi conturi din baza de date LDAP pentru anumite forme de autentificare, este necesar ca intrările să aibă ca objectClass
atât posixAccount
cât și shadowAccount
. Cele două clase conțin informații precum uid
, password
, loginShell
, uidNumber
, gidNumber
.
Trebuie, așadar, să modificăm intrările de tip utilizator existente în baza de date LDAP. Modificările se realizează tot prin intermediul unui fișier LDIF. Astfel, pentru a adăuga informații din clasa posixAccount
și shadowAccount
pentru utilizatorul amengsk
vom folosi un fișier cu următorul conținut:
dn: uid=amengsk,ou=Dominion,o=Terran,dc=labs,dc=cs,dc=pub,dc=ro changetype: modify add: objectClass objectClass: posixAccount - add: uidNumber uidNumber: 1001 - add: gidNumber gidNumber: 1000 - add: homeDirectory homeDirectory: /home/amengsk - add: loginShell loginShell: /bin/bash - add: gecos gecos: Arcturus Mengsk,,, - add: objectClass objectClass: shadowAccount -
Acest fișier se găsește și pe stația client în directorul /etc/ldap/ldif/modify/
, cu numele account-uid-amengsk.ldif
.
Adăugăm noile informații folosind comanda ldapmodify
, cu o sintaxă similară comenzii ldapadd
:
root@ldap-client:/etc/ldap/ldif/modify# ldapmodify -x -D cn=admin,dc=labs,dc=cs,dc=pub,dc=ro -W -f account-uid-amengsk.ldif
Acum verificăm modificările în baza de date LDAP folosind comanda ldapsearch
:
root@ldap-client:/etc/ldap/ldif/modify# ldapsearch -x -LLL uid=amengsk dn: uid=amengsk,ou=Dominion,o=Terran,dc=labs,dc=cs,dc=pub,dc=ro uid: amengsk cn: Arcturus Mengsk givenName: Arcturus sn: Mengsk mail: mengsk@dominion.terran.mil objectClass: person objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uidNumber: 1001 gidNumber: 1000 homeDirectory: /home/amengsk loginShell: /bin/bash gecos: Arcturus Mengsk,,,
Pentru a fi informațiile complete trebuie completate câmpurile legate de parole. Pentru aceasta se folosește comanda ldappasswd
:
root@ldap-client:/etc/ldap/ldif/modify# ldappasswd -x -D cn=admin,dc=labs,dc=cs,dc=pub,dc=ro -W -S uid=amengsk,ou=Dominion,o=Terran,dc=labs,dc=cs,dc=pub,dc=ro New password: Re-enter new password: Enter LDAP Password:
Opțiunea -W
folosită și în cazul comenzilor ldapadd
și ldappaswd
înseamnă că parola utilizatorului de bind (cel care face modificarea, în cazul de față cn=admin,dc=labs,dc=cs,dc=pub,dc=ro
) se va citi de la intrarea standard. Opțiunea -S
spune că parola care va fi completată utilizatorului transmis ca parametru (uid=amengsk…
) va fi citită, de asemenea, de la intrarea standard. În rularea de mai sus se cere întâi parola utilizatorului primit ca parametru (introduceți ce parolă doriți), se confirmă acea parolă și apoi se cere parola de bind.
În acest moment utilizatorul are configurată parola. Pentru a verifica acest lucru, putem să citim intrarea din baza de date LDAP. Câmpul de parolă este însă accesibil doar utilizatorului propriu sau doar celui privilegiat. Vom face citirea folosind utilizatorul propriu (bind):
root@ldap-client:/etc/ldap/ldif/modify# ldapsearch -x -LLL -D 'uid=amengsk,ou=Dominion,o=Terran,dc=labs,dc=cs,dc=pub,dc=ro' -W uid=amengsk userPassword Enter LDAP Password: dn: uid=amengsk,ou=Dominion,o=Terran,dc=labs,dc=cs,dc=pub,dc=ro userPassword:: e1NTSEF9NDhXajhSbzZ6THNWZ1YrRjRnNjRITno4blNYaWhSblo=
În comanda de mai sus am realizat bind la serverul LDAP folosind chiar utilizatorul amengsk
, am folosit opțiunea -W
pentru a citi parola de la intrarea standard și apoi am solicitat afișarea câmpului userPassword
în format base64
.
Exercițiu: Realizați pașii de mai sus și pentru utilizatorii raynor
, vmengsk
, horner
, zeratul
și artanis
.
/etc/ldap/ldif/account-uid-mengsk.ldif
, încărcați-le în baza de date LDAP și apoi configurați parola pentru fiecare utilizator. Incrementați pentru fiecare utilizator adăugat valoarea pentru numărul de UID (uidNumber
).