Настроил LDAP, добавил к нему связку smb. Администрированию поддаётся, самба работает на ура. Решил сегодня завести одну линуксовую машину в домен, но возникла проблема. `getent {passwd|group|shadow}` выдают данные о новом пользователе, `su %ldap_user%` срабатывает, но по ssh доступ на ету линуксовую машину отвергается.
На сервере ситуация почти обратная. По ssh под пользователем зайти могу, однако заходит в sh, хотя в ldap для него указано /bin/bash. Если набрать bash, то в строке приглашения значится «У меня нет имени!@server». И такая же строка, если просто набрать `su %ldap_user%`.
Операционка на обоих компах Ubuntu Server 12.04
Конфиги сервера:
# cat /etc/ldap.conf | grep -vE '^#'
host 192.168.1.200
base dc=mydomain,dc=local
uri ldapi:///mydomain.local
ldap_version 3
binddn cn=proxyuser,dc=mydomain,dc=local
bindpw PASSWORD
rootbinddn cn=admin,dc=mydomain,dc=local
pam_password md5
nss_initgroups_ignoreusers avahi,backup,bin,colord,daemon,firebird,ftp,games,gnats,irc,landscape,libuuid,libvirt-dnsmasq,libvirt-qemu,list,lp,mail,man,messagebus,news,openldap,postgres,proftpd,proxy,root,sshd,statd,sync,sys,syslog,usr1cv8,uucp,whoopsie,www-data
# cat /etc/nsswitch.conf
passwd: files ldap
group: files ldap
shadow: files ldap
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Конфиги клиента:
# cat /etc/ldap.conf | grep -vE '^#'
host 192.168.1.200
base dc=mydomain,dc=local
uri ldap:///192.168.1.200
ldap_version 3
binddn cn=proxyuser,dc=example,dc=net
bindpw PASSWORD
rootbinddn cn=admin,dc=mydomain,dc=local
pam_password md5
nss_initgroups_ignoreusers backup,bin,daemon,games,gnats,irc,landscape,libuuid,list,lp,mail,man,messagebus,news,proxy,root,sshd,sync,sys,syslog,uucp,whoopsie,www-data
/etc/pam.d/common-{auth,account,password} идентичны на обоих компах. Предполагаю, дело не в них, но при надобности выложу
/etc/pam.d/common-session отличается одной строкой (есть на сервере, нету на клиенте):
session optional pam_ck_connector.so nox11
Логи сервер: (auth.log)
Nov 20 14:16:06 localhost sshd[9105]: Received disconnect from 192.168.1.111: 11: disconnected by user
Nov 20 14:16:06 localhost sshd[9105]: pam_unix(sshd:session): session closed for user root
Nov 20 14:16:12 localhost sshd[9559]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=box.localnet.antora user=ldap_user
Nov 20 14:16:12 localhost sshd[9559]: Accepted password for ldap_user from 192.168.1.111 port 44191 ssh2
Nov 20 14:16:12 localhost sshd[9559]: pam_unix(sshd:session): session opened for user ldap_user by (uid=0)
Nov 20 14:16:14 localhost -bash: nss_ldap: failed to bind to LDAP server ldap://192.168.1.200: Invalid credentials
Nov 20 14:16:14 localhost -bash: nss_ldap: failed to bind to LDAP server ldapi:///mydomain.local: Invalid credentials
Nov 20 14:16:14 localhost -bash: nss_ldap: reconnecting to LDAP server...
Nov 20 14:16:14 localhost -bash: nss_ldap: failed to bind to LDAP server ldap://192.168.1.200: Invalid credentials
Nov 20 14:16:14 localhost -bash: nss_ldap: failed to bind to LDAP server ldapi:///mydomain.local: Invalid credentials
Nov 20 14:16:14 localhost -bash: nss_ldap: reconnecting to LDAP server (sleeping 1 seconds)...
Nov 20 14:16:15 localhost -bash: nss_ldap: failed to bind to LDAP server ldap://192.168.1.200: Invalid credentials
Nov 20 14:16:15 localhost -bash: nss_ldap: failed to bind to LDAP server ldapi:///mydomain.local: Invalid credentials
Nov 20 14:16:15 localhost -bash: nss_ldap: could not search LDAP server - Server is unavailable
Nov 20 14:16:16 localhost sshd[9702]: Received disconnect from 192.168.1.111: 11: disconnected by user
Nov 20 14:16:16 localhost sshd[9559]: pam_unix(sshd:session): session closed for user ldap_user
Логи клиента (auth.log):
Nov 20 14:17:22 localhost sshd[1469]: Received disconnect from 192.168.1.111: 11: disconnected by user
Nov 20 14:17:22 localhost sshd[1469]: pam_unix(sshd:session): session closed for user root
Nov 20 14:17:27 localhost sshd[1711]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=box.localnet.antora user=ldap_user
Nov 20 14:17:27 localhost sshd[1711]: pam_ldap: ldap_simple_bind Can't contact LDAP server
Nov 20 14:17:27 localhost sshd[1711]: pam_ldap: reconnecting to LDAP server...
Nov 20 14:17:27 localhost sshd[1711]: pam_ldap: ldap_simple_bind Can't contact LDAP server
Nov 20 14:17:29 localhost sshd[1711]: Failed password for ldap_user from 192.168.1.111 port 59674 ssh2
Что необходимо подправить, чтобы на сервере:
- определялось имя пользователя в bash
- сессия ssh открывалась в том процессоре, который указан для пользователя (например /bin/bash)
а на клиенте:
- пускал бы по ssh
?