Questa è più una soluzione a quello che sto cercando di ottenere che una risposta alla domanda che ho posto. Se qualcuno ha una risposta più diretta alla domanda, per favore contribuisci.
Grazie alle brave persone del CERN e di Ubuntu per avermi messo sulla strada giusta:
link
link
Apparentemente il pacchetto nss-pam-ldap per l'utilizzo di LDAP nell'NSSwitch per fornire / etc / passwd permette di fare un po 'di filtraggio o sovrascrittura dei valori (sebbene non l'abbia ancora provato). Questo potrebbe essere utile se normalmente i homedirs degli utenti LDAP si trovano su NFS, ma su un host specifico, si desidera che abbiano homedir locali.
nslcd.conf
# Set the user homedirectory to /home/$USER
map passwd homeDirectory "/home/$homeDirectory"
Oppure mappare a nologin per mantenere le corrette autorizzazioni file su un server NFS (senza consentire agli utenti LDAP una shell)
# Set the login shell to /sbin/nologin
map passwd loginShell "/sbin/nologin"
Alcuni filtri di base
# Only get users from group 1160
filter passwd (&(objectClass=user)(uidNumber=*)(unixHomeDirectory=*)(gidNumber=1160))
Altre cose possono essere fatte con la configurazione di ldap stessa (/etc/ldap.conf o /etc/openldap/ldap.conf), per esempio aggiungendo un attributo utente: host agli utenti LDAP, dove si ha un attributo host (con nome host) per ogni host a cui l'utente può accedere e righe come questa:
nss_base_passwd ou=Users,dc=example,dc=com?one?|(host=thehostname)(host=\*)
Per maggiori informazioni, basta seguire i link che ho postato in alto, e se ho tempo per far funzionare tutte queste cose in un modo che apprezzo, cercherò di chiarire questa risposta un po '.
EDIT: il sito web principale per il pacchetto nss-pam-ldap è qui:
arthurdejong.org/nss-pam-ldapd/
ha qualche documentazione per il file nsldc.conf