我有一个configuration,我有一个企业活动目录,其中包含用于身份validation的用户名和密码。 我站在自己的云资源,在我的情况下Linux RHEL 7主机; 我给出了一个开箱即用的configuration,在这种configuration中,我为每个Linux主机上的所有用户创build本地(/ etc / passwd)帐户,并使用krb5向该公司AD进行身份validation。 这一切都很好,有用。
但是,我想把我的用户信息放在LDAP中,而不是维护每个主机上的用户信息。 所以我设置了nslcd和openldap服务器和客户端。 我在OpenLDAP中定义了用户信息(等同于/ etc / passwd等价物),但是保留了密码信息(仍在AD中)。 当我通过ssh(putty)login到主机时,这个configuration工作。
我也想通过XRDP而不是直接VNC(因为我来自Windows)login到Linux主机。 如果我使用本地文件configuration,使用户在/ etc / passwd,krb5到企业AD进行密码authentication,XRDP的作品。 但是,当我将用户从/ etc / passwd和shadow中移出时,即使sshlogin有效,XRDPlogin也不会。
/etc/pam.d/sshd和/etc/pam.d/xrdp-sesman是相同的; 两者都首先包含通过pam_krb5的公司AD条目,然后是常规的unix / LDAPloginconfiguration。
问题似乎是,通过XRDPlogin时,pam_krb5没有获得UID / GID信息。
对于LDAP中的用户,ssh的/ var / log / secure看起来像:
Oct 3 13:20:56 host sshd[2407]: pam_krb5[2407]: TGT verified Oct 3 13:20:56 host sshd[2407]: pam_krb5[2407]: authentication succeeds for 'USER' (USER@DOMAIN) Oct 3 13:20:56 host sshd[2407]: Accepted password for USER from IP_ADDR port 63785 ssh2 Oct 3 13:20:56 host sshd[2407]: pam_unix(sshd:session): session opened for user USER by (uid=0)
用户在/ etc / passwd中,XRDP(working)/ var / log / secure看起来有点像:
Oct 3 13:17:55 host xrdp-sesman[799]: pam_krb5[799]: TGT verified Oct 3 13:17:55 host xrdp-sesman[799]: pam_krb5[799]: authentication succeeds for 'USER' (USER@DOMAIN) Oct 3 13:17:55 host xrdp-sesman[2143]: pam_unix(xrdp-sesman:session): session opened for user USER by (uid=0) Oct 3 13:17:56 host polkitd[495]: Registered Authentication Agent for unix-session:9 (system bus name :1.54 [/usr/libexec/xfce-polkit], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
但是,然后,在configuration不起作用,用户只在LDAP,XRDP,我得到这在/ var / log / secure:
Oct 3 13:21:40 host xrdp-sesman[799]: pam_krb5[799]: error resolving user name 'USER' to uid/gid pair Oct 3 13:21:40 host xrdp-sesman[799]: pam_krb5[799]: error getting information about 'USER' Oct 3 13:21:40 host xrdp-sesman[799]: pam_unix(xrdp-sesman:auth): check pass; user unknown Oct 3 13:21:40 host xrdp-sesman[799]: pam_unix(xrdp-sesman:auth): authentication failure; logname= uid=0 euid=0 tty=xrdp-sesman ruser= rhost=
我已经尝试了各种pam文件更改没有成功。 而且我find了我能想到的任何变化,而没有find类似的问题/解决scheme。 任何build议,将不胜感激。 谢谢!
我结束了搞清楚我失踪了什么。 原来,我在/etc/libuser.conf中没有LDAPconfiguration项。 我在libuser.conf中正确地添加了LDAP连接信息,重新启动(不知道是否有必要),然后在所有用例中得到正确的login结果。
我没有看到在我能find的任何LDAPconfiguration指南中需要更新该文件的引用(在configuration系统时,我也没有回忆过去这样做,尽pipe也许有些命令是为我做的)。 这是我第一次尝试使用XRDP的OpenLDAPconfiguration。 所以大概有一些互动是不同的(显然,根据我所看到的)。