Package: freedombox-setup Severity: wishlist Tags: patch The attached patch will allow some LDAP users to login to the system. To login, the user must have objectClass of posixAccount, and also must be in the admin group. I will also make a pull request for Plinth to setup users and manage groups.
From 87744b5b773f1206f306aa8b07cde8c3176e8a00 Mon Sep 17 00:00:00 2001 From: James Valleroy <jvalle...@mailbox.org> Date: Wed, 8 Jul 2015 19:46:27 -0400 Subject: [PATCH 1/2] Configure PAM for LDAP user logins.
--- setup.d/30_ldap-server | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/setup.d/30_ldap-server b/setup.d/30_ldap-server index 358c922..e78508d 100755 --- a/setup.d/30_ldap-server +++ b/setup.d/30_ldap-server @@ -21,3 +21,9 @@ objectClass: organizationalUnit ou: groups EOF + +# Configure PAM for LDAP user logins +echo nslcd nslcd/ldap-sasl-mech select EXTERNAL | debconf-set-selections +echo libnss-ldapd libnss-ldapd/nsswitch multiselect group, passwd, shadow \ + | debconf-set-selections +DEBIAN_FRONTEND=noninteractive apt-get install -y nslcd libpam-ldapd libnss-ldapd -- 2.1.4 From bb2d589cd4cc8b66d05b31b44f2a0ae4dbf3b191 Mon Sep 17 00:00:00 2001 From: James Valleroy <jvalle...@mailbox.org> Date: Sun, 12 Jul 2015 12:32:38 -0400 Subject: [PATCH 2/2] Allow only users in admin group to login. --- first-run.d/50_ldap-server | 15 +++++++++++++++ setup.d/30_ldap-server | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/first-run.d/50_ldap-server b/first-run.d/50_ldap-server index 6b45da8..e8051fe 100755 --- a/first-run.d/50_ldap-server +++ b/first-run.d/50_ldap-server @@ -12,4 +12,19 @@ changetype: modify replace: olcRootDN olcRootDN: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth +dn: cn=module{0},cn=config +changetype: modify +add: olcModuleLoad +olcModuleLoad: memberof.la + +EOF + +cat <<EOF |ldapadd -Y EXTERNAL -H ldapi:/// +dn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config +objectClass: olcConfig +objectClass: olcMemberOf +objectClass: olcOverlayConfig +objectClass: top +olcOverlay: memberof + EOF diff --git a/setup.d/30_ldap-server b/setup.d/30_ldap-server index e78508d..6d96c87 100755 --- a/setup.d/30_ldap-server +++ b/setup.d/30_ldap-server @@ -27,3 +27,8 @@ echo nslcd nslcd/ldap-sasl-mech select EXTERNAL | debconf-set-selections echo libnss-ldapd libnss-ldapd/nsswitch multiselect group, passwd, shadow \ | debconf-set-selections DEBIAN_FRONTEND=noninteractive apt-get install -y nslcd libpam-ldapd libnss-ldapd + +# Only users in admin group can login +if ! grep -q "filter passwd (&(objectClass=posixAccount)(memberOf=cn=admin,ou=groups,dc=thisbox))" /etc/nslcd.conf ; then + echo "filter passwd (&(objectClass=posixAccount)(memberOf=cn=admin,ou=groups,dc=thisbox))" >>/etc/nslcd.conf +fi -- 2.1.4