[Date Prev][Date Next] [Chronological] [Thread] [Top]

OPENLDAP ACL problems..




Hi All,

I am sorry if this topic is off target in this august group. I am posting
this here because I could not get the answers in the archives and I did
not get any help in pam_ldap group also.

What I am after:

	I am trying to replace NIS with LDAP.

Environment:

	RedHat 7.2, openldap-2.0.11

Problem:

	I have setup PAM entries correctly so that I am able to log into
	the system via ssh. Changing passwd (I saw many postings related
	to this but it was not an issue for me) also works fine.

	The problem I face is that the system cannot map my uid and gid
	to proper string values. Just after I login I get the message

		id: cannot find name for user ID 50000

	The value 50000 happens to be my userid defined in the LDAP
	database.

Some Observations:

	When I execute "getent passwd" as a normal user I dont succeed
	but when root does the same, the LDAP users are shown properly.

	My guess is that this is a problem in access control definitions.
	I am enclosing /etc/openldap/slapd.conf and /etc/ldap.conf files
	below.

I hope I will get some useful answers.

Regards.

--ajit

----------------------------slapd.conf--------------------------------------

# $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.8.8.6 2001/04/20 23:32:43 kurt Exp $
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include		/etc/openldap/schema/core.schema
include		/etc/openldap/schema/cosine.schema
include		/etc/openldap/schema/inetorgperson.schema
include		/etc/openldap/schema/nis.schema
include  	/etc/openldap/schema/qmail.schema
include		/etc/openldap/schema/redhat/rfc822-MailMember.schema
include		/etc/openldap/schema/redhat/autofs.schema
include		/etc/openldap/schema/redhat/kerberosobject.schema

# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral	ldap://root.openldap.org

#pidfile	//var/run/slapd.pid
#argsfile	//var/run/slapd.args

# Create a replication log in /var/lib/ldap for use by slurpd.
replogfile	/usr/home/ldap/master-slapd.replog

# Load dynamic backend modules:
#modulepath	/usr/sbin/openldap
#moduleload	back_ldap.la
moduleload	back_ldbm.la
# moduleload	back_passwd.la
# moduleload	back_shell.la

# The next two lines allow use of TLS for connections using a dummy test
# certificate, but you should generate a proper certificate by changing to
# /usr/share/ssl/certs, running "make slapd.pem", and fixing permissions on
# slapd.pem so that the ldap user or group can read it.
#TLSCertificateFile /usr/share/ssl/certs/slapd.pem
#TLSCertificateKeyFile /usr/share/ssl/certs/slapd.pem

access to attr=userPassword
        by dn="cn=manager,dc=iitb,dc=ac,dc=in" write
        by dn="cn=courier,dc=iitb,dc=ac,dc=in" read
        by dn="cn=qmail,dc=iitb,dc=ac,dc=in" read
        by self write
        by anonymous read
        by * auth

access to *
        by dn="cn=courier,dc=iitb,dc=ac,dc=in" read
        by dn="cn=qmail,dc=iitb,dc=ac,dc=in" read
        by dn="cn=manager,dc=iitb,dc=ac,dc=in" write
        by anonymous read
        by self read

#######################################################################
# ldbm database definitions
#######################################################################

database	ldbm
suffix		"dc=iitb,dc=ac,dc=in"
rootdn		"cn=manager,dc=iitb,dc=ac,dc=in"
# Cleartext passwords, especially for the rootdn, should
# be avoided.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.

rootpw		xxxxxxxxxxx

# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd/tools. Mode 700 recommended.

directory	/usr/home/ldap/dbfiles

# Indices to maintain
#index	objectClass,uid,uidNumber,gidNumber,memberUid	eq
#index	cn,mail,surname,givenname			eq,subinitial

index   uidNumber,gidNumber,memberUid   eq
index   givenname                       eq,subinitial
index   cn,sn,uid pres,eq
index   mail,mailAlternateAddress eq
index   objectClass eq

# Replicas to which we should propagate changes
#replica ldap-1.example.com:389 tls=yes
#	bindmethod=sasl saslmech=GSSAPI
#	authcId=host/ldap-master.example.com@EXAMPLE.COM

replica host=postbox.iitb.ac.in
	binddn="cn=manager,dc=iitb,dc=ac,dc=in"
	bindmethod=simple credentials=xxxxxxxxx

----------------------------end slapd.conf--------------------------------------

----------------------------/etc/ldap.conf--------------------------------------
# @(#)$Id: ldap.conf,v 2.28 2001/08/28 12:17:29 lukeh Exp $
#
# This is the configuration file for the LDAP nameservice
# switch library and the LDAP PAM module.
#
# PADL Software
# http://www.padl.com
#

# Your LDAP server. Must be resolvable without using LDAP.
host posten.iitb.ac.in

# The distinguished name of the search base.
base dc=iitb,dc=ac,dc=in

# Adding indices
index cn,sn,uid pres,eq
index mail,mailAlternateAddress eq
index objectClass eq

# Setting Access Control Lists

# Another way to specify your LDAP server is to provide an
# uri with the server name. This allows to use
# Unix Domain Sockets to connect to a local LDAP Server.
#uri ldap://127.0.0.1/
#uri ldaps://127.0.0.1/
#uri ldapi://%2fvar%2frun%2fldapi_sock/
# Note: %2f encodes the '/' used as directory separator

# The LDAP version to use (defaults to 3
# if supported by client library)
ldap_version 3

# The distinguished name to bind to the server with.
# Optional: default is to bind anonymously.
#BINDDN cn=manager,dc=iitb,dc=ac,dc=in
#bindpw xxxxxxxxx

# The distinguished name to bind to the server with
# if the effective user ID is root. Password is
# stored in /etc/ldap.secret (mode 600)

rootbinddn cn=manager,dc=iitb,dc=ac,dc=in

# The port.
# Optional: default is 389.
#port 389

# The search scope.
#scope sub
#scope one
#scope base

# Search timelimit
#timelimit 30

# Bind timelimit
#bind_timelimit 30

# Idle timelimit; client will close connections
# (nss_ldap only) if the server has not been contacted
# for the number of seconds specified below.
#idle_timelimit 3600

# Filter to AND with uid=%s
pam_filter objectclass=posixAccount

# The user ID attribute (defaults to uid)
pam_login_attribute uid

# Search the root DSE for the password policy (works
# with Netscape Directory Server)
#pam_lookup_policy yes

# Group to enforce membership of
#pam_groupdn cn=PAM,ou=Groups,dc=example,dc=com

# Group member attribute
#pam_member_attribute uniquemember
pam_member_attribute memberuid

# Template login attribute, default template user
# (can be overriden by value of former attribute
# in user's entry)
#pam_login_attribute userPrincipalName
#pam_template_login_attribute uid
#pam_template_login nobody

# HEADS UP: the pam_crypt, pam_nds_passwd,
# and pam_ad_passwd options are no
# longer supported.

# Do not hash the password at all; presume
# the directory server will do it, if
# necessary. This is the default.
#pam_password clear

# Hash password locally; required for University of
# Michigan LDAP server, and works with Netscape
# Directory Server if you're using the UNIX-Crypt
# hash mechanism and not using the NT Synchronization
# service.
pam_password md5

# Remove old password first, then update in
# cleartext. Necessary for use with Novell
# Directory Services (NDS)

# Update Active Directory password, by
# creating Unicode password and updating
# unicodePwd attribute.

# Use the OpenLDAP password change
# extended operation to update the password.

#pam_password exop

# RFC2307bis naming contexts
# Syntax:
# nss_base_XXX		base?scope?filter
# where scope is {base,one,sub}
# and filter is a filter to be &'d with the
# default filter.
# You can omit the suffix eg:
# nss_base_passwd	ou=People,
# to append the default base DN but this
# may incur a small performance impact.
#nss_base_passwd	ou=People,dc=example,dc=com?one
#nss_base_passwd	dc=iitb,dc=ac,dc=in?one
#nss_base_shadow	ou=People,dc=example,dc=com?one
#nss_base_group		ou=Group,dc=example,dc=com?one
#nss_base_hosts		ou=Hosts,dc=example,dc=com?one
#nss_base_services	ou=Services,dc=example,dc=com?one
#nss_base_networks	ou=Networks,dc=example,dc=com?one
#nss_base_protocols	ou=Protocols,dc=example,dc=com?one
#nss_base_rpc		ou=Rpc,dc=example,dc=com?one
#nss_base_ethers	ou=Ethers,dc=example,dc=com?one
#nss_base_netmasks	ou=Networks,dc=example,dc=com?ne
#nss_base_bootparams	ou=Ethers,dc=example,dc=com?one
#nss_base_aliases	ou=Aliases,dc=example,dc=com?one
#nss_base_netgroup	ou=Netgroup,dc=example,dc=com?one

# attribute/objectclass mapping
# Syntax:
#nss_map_attribute	rfc2307attribute	mapped_attribute
#nss_map_objectclass	rfc2307objectclass	mapped_objectclass

# configure --enable-nds is no longer supported.
# For NDS now do:
#nss_map_attribute uniqueMember member

# configure --enable-mssfu-schema is no longer supported.
# For MSSFU now do:
#nss_map_objectclass posixAccount User
#nss_map_attribute uid msSFUName
#nss_map_attribute uniqueMember posixMember
#nss_map_attribute userPassword msSFUPassword
#nss_map_attribute homeDirectory msSFUHomeDirectory
#nss_map_objectclass posixGroup Group
#nss_map_attribute cn msSFUName
#pam_login_attribute msSFUName
#pam_filter objectclass=User
#pam_password ad

# configure --enable-authpassword is no longer supported
# For authPassword support, now do:
#nss_map_attribute userPassword authPassword
#pam_password nds

# For IBM AIX SecureWay support, do:
#nss_map_objectclass posixAccount aixAccount
#nss_base_passwd ou=aixaccount,?one
#nss_map_attribute uid userName
#nss_map_attribute gidNumber gid
#nss_map_attribute uidNumber uid
#nss_map_attribute userPassword passwordChar
#nss_map_objectclass posixGroup aixAccessGroup
#nss_base_group ou=aixgroup,?one
#nss_map_attribute cn groupName
#nss_map_attribute uniqueMember member
#pam_login_attribute userName
#pam_filter objectclass=aixAccount
#pam_password clear

# Netscape SDK LDAPS
#ssl on

# Netscape SDK SSL options
#sslpath /etc/ssl/certs/cert7.db

# OpenLDAP SSL mechanism
# start_tls mechanism uses the normal LDAP port, LDAPS typically 636
#ssl start_tls
#ssl on

# OpenLDAP SSL options
# Require and verify server certificate (yes/no)
# Default is "no"
#tls_checkpeer yes

# CA certificates for server certificate verification
# At least one of these are required if tls_checkpeer is "yes"
#tls_cacertfile /etc/ssl/ca.cert
#tls_cacertdir /etc/ssl/certs

# SSL cipher suite
# See man ciphers for syntax
#tls_ciphers TLSv1

# Client sertificate and key
# Use these, if your server requires client authentication.
#tls_cert
#tls_key

ssl no

----------------------------end /etc/ldap.conf----------------------------------

|-----------------------------------------------------------------|
| Ajit K. Jena              Phone : (Office) +91-22-5767751       |
| Computer Centre                            +91-22-5722545 x8750 |
| Indian Institute of Technology    (Home)   +91-22-5722545 x8068 |
| POWAI, Bombay                     Fax   :  +91-22-5723894       |
| PIN 400076, India                 Email :  ajit@cc.iitb.ac.in   |
|-----------------------------------------------------------------|