sich mit den raspies verbinden ============================== ssh pi@fe80::8196:18e9:c122:fbbb%enp3s0 #durchsichtiges gehaeuse ssh pi@fe80::f584:7d29:356f:ac78%enp3s0 #pi400 ssh pi@fe80::e576:b770:e9cd:e3ee%enp3s0 #joy-it gehaeuse ssh pi@fe80::c46a:62d1:f743:58dc%enp3s0 #ohne gehaeuse PI 3 #ohne gehaeuse PI 2 notwendige Pakete einspielen ============================ fuer den client: -------------------------------------------------- sudo apt update sudo apt install libpam-ldapd libnss-ldapd -------------------------------------------------- einstellungen: adresse des ldap-servers (z.b. localhost) search-base: dc=linux-rocks,dc=org services: "group" und "password" auswaehlen mit dem folgenden eintrag werden user-homes angelegt, wenn sie beim anmelden noch nicht da sind. "emacs" DER editor, ggfs. alternative nehmen: -------------------------------------------------- sudo emacs -nw /etc/pam.d/common-session -------------------------------------------------- in datei am ende einfuegen: -------------------------------------------------- session required pam_mkhomedir.so umask=0022 skel=/etc/skel -------------------------------------------------- fuer den server: -------------------------------------------------- sudo apt install slapd ldap-utils -------------------------------------------------- admin-passwd: ljwml! (letztes jahr war mehr lametta!) slapd rekonfigurieren ===================== sudo dpkg-reconfigure slapd - konfiguration nicht auslassen: "nein" - dns-domainname: "linux-rocks.org" oder eigene idee verwenden - name der orga: "linux-rocks" - passwd: "ljwml!" (letztes jahr war mehr lametta!(loriot)) - datenbank beim loeschen von slapd vollstaendig entfernen: "ja" - alte datenbank verschieben: "ja" mit -------------------------------------------------- ldapsearch -D "cn=admin,dc=linux-rocks,dc=org" -b "dc=linux-rocks,dc=org" -w ljwml! -------------------------------------------------- die bisherige struktur betrachten: -------------------------------------------------- # extended LDIF # # LDAPv3 # base with scope subtree # filter: (objectclass=*) # requesting: ALL # # linux-rocks.org dn: dc=linux-rocks,dc=org objectClass: top objectClass: dcObject objectClass: organization o: linux-rocks dc: linux-rocks # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1 -------------------------------------------------- verzeichnis aufbauen ==================== datei structure.ldif mit folgendem inhalt erzeugen: -------------------------------------------------- dn: ou=people,dc=linux-rocks,dc=org objectClass: organizationalUnit dn: ou=groups,dc=linux-rocks,dc=org objectClass: organizationalUnit -------------------------------------------------- und einspielen mit: -------------------------------------------------- ldapadd -x -D "cn=admin,dc=linux-rocks,dc=org" -w ljwml! -f structure.ldif -------------------------------------------------- dit betrachten mit: -------------------------------------------------- ldapsearch -D "cn=admin,dc=linux-rocks,dc=org" -b "dc=linux-rocks,dc=org" -w ljwml! -------------------------------------------------- so muss es aussehen: -------------------------------------------------- # extended LDIF # # LDAPv3 # base with scope subtree # filter: (objectclass=*) # requesting: ALL # # linux-rocks.org dn: dc=linux-rocks,dc=org objectClass: top objectClass: dcObject objectClass: organization o: linux-rocks dc: linux-rocks # people, linux-rocks.org dn: ou=people,dc=linux-rocks,dc=org objectClass: organizationalUnit ou: people # groups, linux-rocks.org dn: ou=groups,dc=linux-rocks,dc=org objectClass: organizationalUnit ou: groups # search result search: 2 result: 0 Success # numResponses: 4 # numEntries: 3 -------------------------------------------------- ein paar gruppen anlegen. dazu datei gruppen.ldif mit folgendem inhalt erzeugen: -------------------------------------------------- # ldapusers, groups, linux-rocks.org dn: cn=ldapusers,ou=groups,dc=linux-rocks,dc=org objectClass: posixGroup cn: ldapusers gidNumber: 4000 # sudo, groups, linux-rocks.org dn: cn=sudo,ou=groups,dc=linux-rocks,dc=org objectClass: posixGroup cn: sudo gidNumber: 27 memberUid: alfred # dialout, groups, linux-rocks.org dn: cn=dialout,ou=groups,dc=linux-rocks,dc=org objectClass: posixGroup cn: dialout gidNumber: 20 memberUid: alfred memberUid: alice memberUid: bob # adm, groups, linux-rocks.org dn: cn=adm,ou=groups,dc=linux-rocks,dc=org objectClass: posixGroup cn: adm gidNumber: 4 memberUid: alfred -------------------------------------------------- einspielen mit: -------------------------------------------------- ldapadd -x -D "cn=admin,dc=linux-rocks,dc=org" -w ljwml! -f gruppen.ldif -------------------------------------------------- benutzer einspielen: vorarbeit: sha-passwoerter erzeugen, hier am beispiel des klartextpassworts "mad": -------------------------------------------------- slappasswd -h {SHA} -s mad -------------------------------------------------- ldif-datei benutzer.ldif: -------------------------------------------------- # alfred, people, linux-rocks.org dn: uid=alfred,ou=people,dc=linux-rocks,dc=org objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: alfred sn: e.neumann givenName: alfred cn: alfred uidNumber: 4000 gidNumber: 4000 userPassword: {SHA}GzzM2if4x6ZgXigFPDAGb3PNVxc= loginShell: /bin/bash homeDirectory: /home/alfred # bob, people, linux-rocks.org dn: uid=bob,ou=people,dc=linux-rocks,dc=org objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: bob sn: baumeister givenName: bob cn: bob uidNumber: 4010 gidNumber: 4010 userPassword: {SHA}GzzM2if4x6ZgXigFPDAGb3PNVxc= loginShell: /bin/bash homeDirectory: /home/bob # alice, people, linux-rocks.org dn: uid=alice,ou=people,dc=linux-rocks,dc=org objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: alice sn: imwunderland givenName: alice cn: bob uidNumber: 4020 gidNumber: 4020 userPassword: {SHA}GzzM2if4x6ZgXigFPDAGb3PNVxc= loginShell: /bin/bash homeDirectory: /home/alice -------------------------------------------------- ergebnis betrachten mit: -------------------------------------------------- ldapsearch -D "cn=admin,dc=linux-rocks,dc=org" -b "dc=linux-rocks,dc=org" -w ljwml! -------------------------------------------------- userPassword:: e1NIQX1HenpNMmlmNHg2WmdYaWdGUERBR2IzUE5WeGM9 => userPassword ist base64-codiert echo "e1NIQX1HenpNMmlmNHg2WmdYaWdGUERBR2IzUE5WeGM9" | base64 -d {SHA}GzzM2if4x6ZgXigFPDAGb3PNVxc= hiemit ist unser DIT fertig! pam ueberpruefen: -------------------------------------------------- getent passwd getent group sudo /etc/init.d/nscd restart su alfred ... alfred@pi400:/home/pi/ldifDateien $ id uid=4000(alfred) gid=4000(ldapusers) Gruppen=4000(ldapusers),4(adm),20(dialout),27(sudo)