I have a feature request or bug fix as I see it.
We use LDAP for NSS/PAM and we have about 50,000 user accounts and 50,000
groups. Each user has a group. I have noticed that our LDAP servers were
having some performance problems from time to time. I narrowed it down to
openpkg causing severe LDAP lookups during cron routines and other types of
openpkg commands.
I found the following three shell scripts calling getent in a horribly
inefficient way. Basically causing a complete dump of the password and
group file for certain operations.
/usr/local/etc/openpkg/rpmmacros
Several lines like this:
%l_suid %((getent passwd; cat /etc/passwd; ypcat passwd;
nidump passwd .) 2>/dev/null | grep "^ %{l_susr}:" | sed -e 'q' |
awk -F: '{ print $3; }')
/usr/local/lib/openpkg/shtool
This one as the following:
groupname=`(getent group) 2>/dev/null | \
grep "^[^:]*:[^:]*:${groupid}:" | \
sed -e 's/:.*$//'`
/usr/local/libexec/openpkg-tools/dev.sh
This one has the following:
realname=`(getent passwd; cat /etc/passwd; ypcat passwd; nidump passwd .)
2>/dev/null |\
grep "^${username}:" | awk -F: '{ print $5; }'`
Ideally these would have something like:
getent passwd ${username} ; grep ^${username} /etc/passwd; ypmatch
${username} passwd; nidump passwd
I am sure NIS+ has a similar command, but I don't use it.
I see that this has been done is a few of the scripts, but those there seem
to still have problems. Anyhow, that would certainly make things way more
efficient.
Thanks,
Mark Keller
______________________________________________________________________
The OpenPKG Project www.openpkg.org
Developer Communication List [email protected]