본문 바로가기
카테고리 없음

LDAP을 이용한 계정 등록

by 연금(Pension)술사 2026. 3. 23.
ldapadd -x -D "cn=admin,dc=mf,dc=seegene,dc=com" -W -f [등록팔 ldif 파일명]

사내 서버를 여러 대 운영하다 보면, 서버마다 계정을 따로 만드는 대신 LDAP을 이용해 계정을 중앙에서 관리하는 경우가 많다.
이렇게 하면 사용자 계정, UID/GID, 비밀번호를 통일할 수 있어서 어느 서버에 접속하든 같은 계정으로 로그인할 수 있다.

 

우리 환경도 여러 서버가 있고, LDAP 기반으로 계정을 공유하고 있다.
이번 글에서는 신규 사용자 new_user를 LDAP에 등록하는 방법을, 서버 관리 경험이 많지 않은 사람도 따라할 수 있도록 step-by-step으로 정리해본다.

 

 

1. LDAP 계정 추가가 왜 필요한가?


일반적으로 리눅스 서버에서 useradd로 계정을 만들면 해당 서버에만 계정이 생성된다.
반면 LDAP을 사용하면 계정을 중앙에서 등록하고, 여러 서버가 그 정보를 참조한다.

즉:

  • useradd: 서버마다 따로 계정 생성
  • LDAP: 한 번 등록하면 여러 서버에서 공통 사용

이 구조의 장점은 다음과 같다.

  • 사용자 계정 일관성 유지
  • UID/GID 통일 => 사실 이거 때문에 씀.
  • 비밀번호 및 권한 관리 편의성
  • 서버가 늘어나도 계정 관리 부담 감소

 

2. 작업 전 알아둘 것


 

  • LDAP 관련 작업 디렉터리: /root/ldap
  • 신규 사용자 등록 시 add_user.ldif 파일 수정 -> 꼭 이거 아니어도 되지만 템플릿으로 쓸수잇음. 
  • 현재 사용 중인 UID/GID 확인: getent passwd
  • LDAP 등록 명령:
ldapadd -x -D "cn=admin,dc=[dc명],dc=[dc명],dc=[dc명]" -W -f [등록할 ldif 파일명]

 

  • -x: simple authenication. 간단한 ID/PW 기반 인증을 사용하는 경우.
  • -D: 어떤 계정으로 LDAP에 접속(bind)할 것인지를 지정하는 옵션. Distinguished Name (DN)을 의미함. LDAP안에 관리자 계정의 전치 이름 경로를 의미함.
  • -W: 비밀번호를 프롬프트로 받겠음. 즉 명령어를 수행하고 관리자 비밀번호를 넣겠다는 것. "-w"으로 넣으면 히스토리에 남음
  • -f: 등록할 파일명

=> 이걸 모두 합치면 LDAP도메인 구조 안에서 admin계정이 어디있는지 지정가능.

 

3. 지정할 GID 찾기 : 현재 비어있는 GID을 찾아야함

getent passwd

 

4. LDIF 파일 작성하기.


LDAP으로 계정을 관리하다 보면 아래처럼 생긴 설정을 자주 보게 된다. 처음 보면 cn, ou, dc, uid 같은 값들이 낯설다.
특히 왜 ou가 두 번 나오고, dc도 여러 번 나오는지 헷갈리기 쉽다. 이번 글에서는 LDAP 계정 등록 시 자주 보는 이 구조가 무엇인지, 그리고 각 요소가 어떤 의미인지 쉽게 정리해보겠다.

# 그룹 객체 생성
dn: cn=new_user,ou=RnD,ou=AI,dc=example,dc=local
objectClass: top
objectClass: posixGroup
cn: new_user
gidNumber: 1017

# 사용자 객체 생성
dn: uid=new_user,ou=RnD,ou=AI,dc=example,dc=local
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
cn: new_user
sn: new_user
uid: new_user
uidNumber: 1017
gidNumber: 1017
homeDirectory: /home/new_user
loginShell: /bin/bash
mail: new_user@example.local

 

LDAP에서 가장 먼저 이해해야 하는 것은 dn이다. 예를 들어 아래 줄을 보자. 여기서 dn은 Distinguished Name 의 약자로,
LDAP 안에서 이 객체가 어디에 있는지를 나타내는 전체 경로다. 쉽게 말해 파일 시스템의 전체 경로와 비슷하다. 

dn: uid=new_user,ou=RnD,ou=AI,dc=example,dc=local

예를 들어 리눅스에서는:

/home/new_user

처럼 경로를 표현하듯이, LDAP에서는:

uid=new_user,ou=RnD,ou=AI,dc=example,dc=local

처럼 객체의 위치를 표현한다. 즉, dn은 LDAP 안에서의 정확한 주소라고 보면 된다.

 

각 요소의 의미는 아래와 같음.

  • uid: 사용자 로그인 ID
  • cn: 공통 이름(Common Name). 쉽게 말하면 그 객체를 대표하는 이름이다.
  • ou: 조직 단위(Organizational Unit). 쉽게 말하면 부서, , 카테고리, 폴더 같은 개념이다.
  • dc: 도메인 구성 요소(Domain Component)

 

반응형