성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Roll A Lisp In C - Reading ; https...
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>우분투 서버 Active Directory 가입하기</h1> <p> Active Directory(뿐만 아니라 그 외의 인증 서버)를 한번 사용하기 시작하면 그 편리함에 반할 수밖에 없지요. ^^ 요즘처럼 수많은 VM을 설치하는 시기에는 AD없이 관리한다는 것은 상상도 못합니다.<br /> <br /> 최근 들어, 저 개인적으로도 리눅스 지식을 습득해야겠다는 필요성이 들어서 전에 비해서는 부쩍(?) 우분투를 사용할 일이 생겼는데요. 그러다 보니 이것마저 AD 가입을 시키면 좋겠다 싶어서 한번 실습을 해봤습니다.<br /> <br /> 우선, 방법은 다음의 글을 보고 참조했는데요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 크로스 플랫폼 개발 환경 만들기 - (6/11) 윈도우 Active Directory 가입 ; <a target='tab' href='http://devwith.com/?r=home&m=bbs&bid=teamblog_net&uid=2136'>http://devwith.com/?r=home&m=bbs&bid=teamblog_net&uid=2136</a> </pre> <br /> 따라해 보니, 제 상황에서는 약간 다른 면이 있어서 기록으로 남겨둡니다.<br /> <br /> 일단, likewise-open 설치부터 걸렸습니다. 다음과 같이 명령을 내렸는데,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > sudo apt-get install likewise-open </pre> <br /> 진행하다가 마지막 "Importing registry..." 메시지를 끝으로 설치가 멈춰버리는 현상이 발생했습니다. 검색해 보니 다음의 글이 나오는데요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > package likewise-open 6.1.0.406-0ubuntu5 failed to install/upgrade: subprocess installed post-installation script returned error exit status 1 ; <a target='tab' href='https://bugs.launchpad.net/ubuntu/+source/likewise-open/+bug/987574'>https://bugs.launchpad.net/ubuntu/+source/likewise-open/+bug/987574</a> </pre> <br /> 즉, winbind와 충돌이 일어난다는 내용이고, 그래서 아래의 명령으로 삭제를 한 후,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > sudo apt-get remove winbind </pre> <br /> 다시 설치를 해서 성공을 했습니다. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > root@ubuntux64:~# <span style='color: blue; font-weight: bold'>sudo apt-get install likewise-open</span> Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: likewise-open-gui The following NEW packages will be installed: likewise-open 0 upgraded, 1 newly installed, 0 to remove and 42 not upgraded. Need to get 0 B/3,208 kB of archives. After this operation, 9,118 kB of additional disk space will be used. Selecting previously unselected package likewise-open. (Reading database ... 126361 files and directories currently installed.) Unpacking likewise-open (from .../likewise-open_6.1.0.406-0ubuntu5_amd64.deb) .. . Processing triggers for ureadahead ... Processing triggers for man-db ... Setting up likewise-open (6.1.0.406-0ubuntu5) ... Importing registry... root@ubuntux64:~# </pre> <br /> 이제 AD에 리눅스를 가입시켜야 하는데요. 구성한 Active Directory의 FQDN이 공용 DNS에 등록된 이름과 같다면 상관없지만, 다른 경우에는 사내 DNS 서버를 리눅스에 알려줘야 합니다. 안 그러면 다음과 같이 오류 발생할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > root@ubuntux64:~# <span style='color: blue; font-weight: bold'>sudo domainjoin-cli join testad.com "Kevin Jeong"</span> Joining to AD Domain: testad.com With Computer DNS Name: ubuntux64.testad.com Kevin Jeong@TESTAD.COM's password: Error: DNS_ERROR_BAD_PACKET [code 0x0000251e] A bad packet was received from a DNS server. Potentially the requested address does not exist. </pre> <br /> 이를 위해 윈도우의 hosts 파일에 해당하는 resolv.conf에 사내 DNS 서버를 등록 줍니다. 이때 vi 에디터를 사용해도 되지만, 저처럼 리눅스 초보자에게는 nano 에디터를 사용하는 것도 좋은 선택입니다. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > root@ubuntux64:~# <span style='color: blue; font-weight: bold'>sudo nano /etc/resolv.conf</span> </pre> <br /> 제 경우에는 다음과 같이 편집을 했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > root@ubuntux64:~# <span style='color: blue; font-weight: bold'>cat /etc/resolv.conf</span> # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN # nameserver 168.126.63.1 # nameserver 168.126.63.2 <span style='color: blue; font-weight: bold'>nameserver 192.168.1.190 nameserver 192.168.1.186</span> </pre> <br /> 이제, 다시 도메인 가입을 하면 정상적으로 완료됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > root@ubuntux64:~# <span style='color: blue; font-weight: bold'>sudo domainjoin-cli join testad.com "Kevin Jeong"</span> Joining to AD Domain: testad.com With Computer DNS Name: ubuntux64.testad.com Kevin Jeong@TESTAD.COM's password: SUCCESS You should reboot this system before attempting GUI logins as a domain user. root@ubuntux64:~# </pre> <br /> 그다음, likewise 서비스를 시작해 둡니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > root@ubuntux64:~# <span style='color: blue; font-weight: bold'>sudo /etc/init.d/likewise start</span> * Starting Likewise Open services [ OK ] </pre> <br /> "<a target='tab' href='http://devwith.com/?r=home&m=bbs&bid=teamblog_net&uid=2136'>크로스 플랫폼 개발 환경 만들기 - (6/11) 윈도우 Active Directory 가입</a>" 글에서는 관리자 권한을 주기 위해 admin(또는 administrator) 그룹에 넣는다고 하면서 명령을 실행하고 있는데요. 제가 해보니 그 과정이 필요치는 않았습니다.<br /> <br /> 그다음 sudoers 파일을 편집할 차례인데요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > sudo nano /etc/sudoers </pre> <br /> 역시 "<a target='tab' href='http://devwith.com/?r=home&m=bbs&bid=teamblog_net&uid=2136'>크로스 플랫폼 개발 환경 만들기 - (6/11) 윈도우 Active Directory 가입</a>" 글에서는 많은 항목을 추가하고 있지만 직접 해보니 하나만 넣어도 무방했습니다. 아래는 제가 넣은 Active Directory의 사용자 계정입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ...[생략]... # User privilege specification root ALL=(ALL:ALL) ALL <span style='color: blue; font-weight: bold'>TESTAD\\kevin^jeong ALL=(ALL:ALL) ALL</span> ...[생략]... </pre> <br /> 변경시 주의할 점이 있습니다. 바로 Active Directory 이름을 반드시 대문자 (예: TESTAD)로 해야 한다는 것. 그리고 계정에 공백이 들어가면 "^"로 표현해 주면 됩니다. (리눅스 계열에서는 공백을 '^'문자로 표현하는 관례가 있는 것 같습니다.)<br /> <br /> 이렇게 항목을 추가했으면 변경된 sudoers 파일을 시스템에 반영하기 위해 credentials 캐시 정보를 비워주어야 하는데요. 이를 위해 다음과 같이 명령을 내리면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > sudo -k </pre> <br /> 마지막으로, 테스트를 위해 콘솔 창에서 로그인 시도를 하면 끝! ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Ubuntu 12.04 LTS ubuntux64 tty1 ubuntux64 login: testad\kevin jeong Password: Added user TESTAD\kevin^jeong. Welcome to ... </pre> <br /> 로그인 후, /etc/sudoers 파일 변경을 올바르게 했는지 확인하기 위해 sudo 권한으로 접근해 보면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > sudo -s </pre> <br /> <hr style='width: 50%' /><br /> <br /> 부가적으로, likewise의 도구에 대한 설명을 찾아보았는데 다음의 글이 검색되었습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > How to configure Likewise "Open" AD intergration on vMA ; <a target='tab' href='http://www.virtuallyghetto.com/2010/06/how-to-configure-likewise-open-ad.html'>http://www.virtuallyghetto.com/2010/06/how-to-configure-likewise-open-ad.html</a> </pre> <br /> 위의 글이 씌여진 시점이 2010년인데, 그사이 많은 변화가 있었나봅니다.<br /> <br /> 도구가 놓여진 폴더가 "/opt/likewise/bin"라고 하는데, 실제로는 /usr/bin 폴더에 lw로 시작하는 파일들로 있었습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > root@ubuntux64:/usr/bin# ls lw* lw-ad-cache lw-find-objects lw-lsa lw-addevent lw-find-user-by-id lwma lw-add-group lw-find-user-by-name lw-mod-group lw-add-user lw-get-dc-list lw-mod-user lwconfig lw-get-dc-name lwnet-get-log-info lw-del-group lw-get-dc-time lwnet-set-log-level lw-del-user lw-get-log-info lw-query-member-of lw-edit-reg lw-get-metrics lw-refresh-configuration lw-enum-groups lw-get-status lwregshell lw-enum-members lwio-cli lw-set-default-domain lw-enum-objects lwio-copy lw-set-log-level lw-enum-users lwio-driver lw-set-machine-name lw-eventlog-cli lwio-get-log-info lw-set-machine-sid lw-export-dc-cache lwio-refresh lwsm lw-find-by-sid lwio-set-log-info lw-update-dns lw-find-group-by-id lwio-tool lw-ypcat lw-find-group-by-name lw-list-groups-for-user lw-ypmatch </pre> <br /> 만약, 캐시된 사용자 정보를 clear하고 싶다면 "lw-ad-cache --delete-all" 명령을 내려주면 됩니다. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > root@ubuntux64:<span style='color: blue; font-weight: bold'>/usr/bin# lw-ad-cache</span> Usage: lw-ad-cache --delete-all [--domain domain] lw-ad-cache --delete-user [--domain domain] {--name <user login id> | --uid <uid>} lw-ad-cache --delete-group [--domain domain] {--name <group name> | --gid <gid>} lw-ad-cache --enum-users [--domain domain] {--batchsize [1..1000]} lw-ad-cache --enum-groups [--domain domain] {--batchsize [1..1000]} --delete-all Deletes everything from the cache --delete-user Deletes one user from the cache --delete-group Deletes one group from the cache --enum-users Enumerates users in the cache --enum-groups Enumerates groups in the cache root@ubuntux64:<span style='color: blue; font-weight: bold'>/usr/bin# lw-ad-cache --delete-all</span> The cache has been emptied successfully. root@ubuntux64:/usr/bin# </pre> <br /> 리눅스는 윈도우 개발자에게도 또 다른 가능성의 영역으로 보입니다. ^^<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
3142
(왼쪽의 숫자를 입력해야 합니다.)