We run Debian Sarge, our current account script:
- Uses getpwnam to check if an account exists
- If not, adds account info to LDAP
- Uses getpwnam to get the $uid and $gid to chown mail spool
While the script is running, the second getpwnam fails. This behavior does not occur with file (/etc/passwd) based accounts.
The problem also occurs with User::pwent
If it turns out that this isn't a problem with my understanding, I can think of a few (ugly) ways to work around the problem. If it is a real problem, any thoughts on the best way to report the bug to the OpenLDAP (?) Pam (?) glibc (?) people would be helpful.
or warn "account doesn't exist yet... (expected)";
# code to add LDAP account here brings out problem
# code to add to /etc/passwd account doesn't
or warn "shouldn't see this but we do\n $!";
(system("chown test.test /tmp/file")==0)
or warn "this also fails"
# this works but is ugly
warn `getent passwd | grep test`,"\n";
# $! eq 'No such file or directory'