Unix/Ubuntu

Ubuntu LDAP client되기

ForceCore 2009. 2. 23. 22:11
아주 쉽게 할 수 있다.
https://help.ubuntu.com/community/LDAPClientAuthentication

해석...
# apt-get install ldap-auth-client
이렇게 패키지를 설치한다.

설정하는 것이 나오는데...
https://help.ubuntu.com/community/SingleSignOn
여기 있는 스샷을 따라한다.

뭘 묻는고 하니...
LDAP server uniform resource identifier: ldap://lab.xxx.ac.kr
Disginguished name of the search base: dc=xxx,dc=ac,dc=kr
LDAP version to use: 당연히 3
Make local root Database admin: no
Does the LDAP database requre login? no

만약 잘못되거나 나중에 변경하고 싶어지면
# dpkg-reconfigure ldap-auth-config
이렇게 해주면 마법사가 다시 나오니 걱정하지 말자.
이 마법사에서, passwd 명령어로 비번을 바꾸면 어떻게 할지 묻는데... exop 으로 설정하면 OK.
그리고, 참고로, 필자는 phpldapadmin에서 계정을 생성할 때 비번 encryption을 md5로 해두었다.

/etc/auth-client-config/profile.d/open_ldap 파일을 아래와 똑같이 생성하라:
[open_ldap]
nss_passwd=passwd: files ldap
nss_group=group: files ldap
nss_shadow=shadow: files ldap
nss_netgroup=netgroup: files ldap
pam_auth=auth       required     pam_env.so
        auth       sufficient   pam_unix.so likeauth nullok
#the following line (containing pam_group.so) must be placed before pam_ldap.so
#for ldap users to be placed in local groups such as fuse, plugdev, scanner, etc ...
        auth       required     pam_group.so use_first_pass
        auth       sufficient   pam_ldap.so use_first_pass
        auth       required     pam_deny.so
pam_account=account    sufficient   pam_unix.so
        account    sufficient   pam_ldap.so
        account    required     pam_deny.so
pam_password=password   sufficient   pam_unix.so nullok md5 shadow
        password   sufficient   pam_ldap.so
#        password   sufficient   pam_ldap.so use_first_pass
        password   required     pam_deny.so
pam_session=session    required     pam_limits.so
        session    required     pam_mkhomedir.so skel=/etc/skel/
        session    required     pam_unix.so
        session    optional     pam_ldap.so

mkhomedir.so 가 있어서, 홈디렉토리도 만들어줌 :D
# auth-client-config -a -p open_ldap
그리고 이 명령어를 내려주면...
getent passwd
명령어로 ldap의 사용자를 볼 수 있고, ssh로도 ldap의 유저가 로그인 할 수 있다 +_+

하지만 문제가 하나 있다.
fcorfe@lab:~$ passwd
Enter login(LDAP) password:
passwd: Authentication information cannot be recovered
passwd: password unchanged
비번 변경이 안 된다 :(
틀린 비번을, 현재 비번입력하라는 곳이 입력하면, 그게 틀린 비번이란건 잘 알아채는데...

http://ubuntuforums.org/showthread.php?t=156071
같은 현상.

해결:
pam_password=password   sufficient   pam_unix.so nullok md5 shadow
        password   sufficient   pam_ldap.so
#        password   sufficient   pam_ldap.so use_first_pass
        password   required     pam_deny.so
만약 password  sufficient pam_ldap.so 에 use_first_pass가 들어있으면 그럴 수 있다. 빼버리시오.
http://ubuntuforums.org/showthread.php?t=640760&page=38
여기서 알아낸 정보임. 원래는 코멘트 된 것 처럼 pam_ldap.so 뒤에 use_first_pass가 붙어서 버그를 일으키는 것이었다. 필자가 코멘트 처리하고 바르게 고쳤다.

etc/pam.d/common-password
파일의 내용을 확인하여 맞는 설정인지 확인하라.