配置linux通过ad认证的方法有很多,如samba使用的winbind方式。这里我使用的是pam_ldap方式,网上有很多这样相关的文章,都是按官网上一步步做,先配nsswitch.conf,再配ldap.conf。配置nsswitch.conf的作用是告诉系统去哪里获取到用户的pw信息(如getpwnam,getpwuid等函数调用时用),有时候,我们通常希望将帐号配置在系统的/etc/passwd,只需要使用ad作一个认证,没有必要按官网的步骤一步步来。
首行下载pam_ldap
wget http://www.padl.com/download/pam_ldap.tgz
解压编译安装:
tar -xzvf pam_ldap.tgz
cd pam_ldap
./configure --prefix=/usr --sysconfdir=/etc
mv /usr/lib/security/pam_ldap.so /lib64/security/
修改/etc/ldap.conf如下
接触过AD的朋友,我想一眼就能看懂,如果需要调试可以开启debug和logdir,这样就可以知道报错信息。
修改/etc/pam.d/system-auth添加红框部分如下:
在ad中新建一个用户,同时在linux系统建相同用户名的帐号,不用设密码,尝试一下可以用ad密码登陆了。
----------------------------以下是另一个网友的配置方案---------------------------------------------
Linux通过LDAP方式,使用windows AD帐户登录linux shell,这个想法很cool吧。
之前配置过一次,但过了太久忘记了,因此,今天把配置方法记录下来。
先说一下环境:
域控服务器:1.1.1.1 域名 123.cc dns就是域控。
linux是CentOS 5.4,使用pam认证方式认证ldap。
在windows 上将域配置好,唯一注意的是,要安装dns服务。域配置好之后,使用静态ip,并在windows网卡配置dns的地方,填上自己的ip,即1.1.1.1,同时,在域中新建一个用户,www.linuxidc.com用户名就用user吧,密码因为windows复杂性密码的要求,使用123qweASD。
linux的配置更加简单,请看配置文件:
# cat /etc/ldap.conf
host 1.1.1.1 //域控的IP
base dc=123,dc=cc
uri ldap://1.1.1.1/ //ldap服务器的uri,一般仅需更改其中的IP
binddn cn=user,cn=Users, dc=123,dc=cc //dc需要按照域名的每个字节输入。 cn是用户及用户组。
bindpw 123qweASD //认证用户的密码。
scope sub
debug 1
logdir /var/log
pam_login_attribute sAMAccountName
pam_filter objectclass=User
pam_password ad
#pam_member_attribute uniquemember
pam_groupdn OU=Groups,DC=123,DC=CC?sub //ou是组,dc同上。
# cat /etc/security/group.conf | grep -v "#"
* ; * ; * ; Al0000-2400 ; floppy, audio, cdrom, video, usb, plugdev, burning, users //此文件不需要修改。
好了,配置完成了。登录的时候,使用域中的账号密码登录即可。
安装时出现出错误:
Node.js configure error: No acceptable C compiler found!Please
解决:yum install gcc
错误:configure: error: Cannot find ldap.h
解决:yum install openldap openldap-devel