Пользователь на нашем сервере Opensuse 12.1 пытался смонтировать каталог NFS и пришел ко мне, сказав, что у него нет имени пользователя. Его пользовательская конфигурация идентична конфигурации любого другого пользователя в системе, поэтому я подозревал, что LDAP полностью отказал, но оказалось, что это не так. Фактически, он может войти в систему как его пользователь LDAP в других системах, и они успешно определяют его имя (то есть whoami не терпит неудачу). Запуск whoami для каждого пользователя на сервере возвращает (не усеченный вывод):
$ for i in $(ldapsearch -LLL -x -H ldap://localhost uid | grep "^uid" | cut -d' ' -f 2); do [[ $(su $i -c whoami) == "$i" ]] || echo $i; done
whoami: cannot find name for user ID 1497
hisusername
Точно так же, если я запустил группы на нем на сервере LDAP:
$ groups hisusername
hisusername : users faculty
$ su hisusername
[hisusername@server root]$ groups
users groups: cannot find name for group ID 1000
1000
Это меня полностью сбивает с толку. Я также перезапустил slapd, но, к сожалению, ничего не исправил.
На сервере запущен sssd для кэширования имен, но проблема сохраняется после
systemctl stop sssd
rm -rf /var/lib/sss/db/**
systemctl restart sssd
Это означает, что кеширование имен, вероятно (?) Не проблема
Записи LDAP для рабочей учетной записи пользователя:
# hisusername-temp, people, linuxlab.<domain>.<tld>
dn: uid=hisusername-temp,ou=people,dc=linuxlab,dc=<domain>,dc=<tld>
cn: hisusername-temp
gidNumber: 100
homeDirectory: /home/hisusername-temp
loginShell: /usr/local/bin/redirsh
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
sn: hisusername-temp
uid: hisusername-temp
uidNumber: 1540
Неисправный аккаунт:
# hisusername, people, linuxlab.<domain>.<tld>
dn: uid=hisusername,ou=people,dc=linuxlab,dc=<domain>,dc=<tld>
cn: His Name
gidNumber: 100
homeDirectory: /home/hisusername
loginShell: /usr/local/bin/redirsh
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
sn: hisusername
uid: hisusername
uidNumber: 1497