성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
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> AD 가입은 이미 다음의 글에서 설명했고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 우분투 데스크톱 Active Directory 가입하기 ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/1365'>http://www.sysnet.pe.kr/2/0/1365</a> 우분투 서버 Active Directory 가입하기 ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/1362'>http://www.sysnet.pe.kr/2/0/1362</a> </pre> <br /> 이렇게 AD에 가입했다면 파일 공유는 매우 쉽습니다. GUI 쉘이 있는 환경이라면 파일 관리자를 실행시키고, "Network" / "Browse Network"에 가서 "Windows Network" 항목을 선택해서 들어가면 됩니다.<br /> <br /> <img alt='ubuntu_fileshare_1.png' src='/SysWebRes/bbs/ubuntu_fileshare_1.png' /> <br /><br /> "Windows Network"에 들어가면 아래와 같이 자신이 가입한 Active Directory 도메인 이름이 나타나는데 다시 이 안으로 들어갑니다.<br /> <br /> <img alt='ubuntu_fileshare_2.png' src='/SysWebRes/bbs/ubuntu_fileshare_2.png' /> <br /><br /> 이제 AD에 포함된 컴퓨터들이 나타나고,<br /> <br /> <img alt='ubuntu_fileshare_3.png' src='/SysWebRes/bbs/ubuntu_fileshare_3.png' /> <br /><br /> 특정 컴퓨터를 두 번 누르면 계정 정보를 입력하는 창이 나오고 자신의 AD 계정 정보를 입력해 주면 됩니다.<br /> <br /> <img alt='ubuntu_fileshare_4.png' src='/SysWebRes/bbs/ubuntu_fileshare_4.png' /> <br /><br /> <hr style='width: 50%' /><br /> <br /> 만약 계정 정보에 공백이 있다면 입력 형식에 주의해야 합니다. 우분투는 로그인한 사용자 계정에 공백이 있는 경우 "TESTAD\kevin^jeong"처럼 기본 계정명에 "^" 글자를 사용해서 계정 입력 대화창에 채워놓습니다. 하지만, 이 글자를 없애고 다음과 같은 식으로 입력해 줘야 합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 계정명: TESTAD\kevin jeong 도메인: WORKGROUP 암호: ******* </pre> <br /> 위의 정보를 보면 계정명에 AD 이름(TESTAD)이 포함되어 있으면서도 그 아래의 도메인 이름에는 WORKGROUP으로 나오는데 이것은 상관없습니다. (도메인 명은 대소문자 무관합니다.) 물론, 다음과 같이 계정명의 도메인 명을 분리해서 입력하는 것도 가능합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 계정명: kevin jeong 도메인: TESTAD 암호: ******* </pre> <br /> <hr style='width: 50%' /><br /> <br /> GUI 쉘이 없는 경우는 어떻게 할까요? 이에 대해서는 다음의 글에서 설명해 주고 있습니다.<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 mount remote windows partition (windows share) under Linux ; <a target='tab' href='http://www.cyberciti.biz/tips/how-to-mount-remote-windows-partition-windows-share-under-linux.html'>http://www.cyberciti.biz/tips/how-to-mount-remote-windows-partition-windows-share-under-linux.html</a> </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;' > mkdir /mnt/test </pre> <br /> 이후, 만들어진 /mnt/test 폴더와 원격 폴더를 mount 명령어로 연결해 줍니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > mount -t smbfs //[서버]/[폴더] [로컬폴더경로] -o username=[계정명],workgroup=[AD명] 예) mount -t smbfs //testpc/testshare /mnt/test -o username=testuser,workgroup=testad 만약 계정명에 공백이 있다면 큰 따옴표로 묶어줍니다. 예) mount -t smbfs //testpc/testshare /mnt/test -o username="test user",workgroup=testad </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;' > [...] CIFS VFS: Send error in SessSetup = -13 [...] CIFS VFS: cifs_mount failed w/return code = -13 mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) </pre> <br /> 성공한 경우라면 /mnt/test 폴더가 원격 폴더와 연결되었음을 mount 명령어 기록으로 확인할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > mount ...[생략]... //testpc/testshare on /mnt/test type cifs (rw) </pre> <br /> 원격 폴더 연결을 해제하고 싶다면 umount 명령어로 mount 출력 결과로 나타났던 원격 폴더 경로를 전달하면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > umount //testpc/testshare </pre> <br /> <hr style='width: 50%' /><br /> <br /> 이제 반대로 윈도우에서 우분투의 공유 폴더로 접근하는 방법을 살펴보겠습니다.<br /> <br /> 우선, GUI 환경인 경우에는 역시 파일 관리자를 실행시켜 공유를 원하는 폴더를 마우스 우클릭 한 다음 "Share" 탭에서 "Share this folder" 옵션을 켜줍니다. (이 과정에서 samba가 설치되어 있지 않은 경우에는 우분투가 설치할 거냐고 묻는 창이 뜨고, 설치를 하면 됩니다.)<br /> <br /> "Create Share" 버튼을 눌렀을 때 다음과 같은 오류가 발생할 수 있는데요.<br /> <br /> <div style='BACKGROUND-COLOR: #ccffcc; padding: 10px 10px 5px 10px; MARGIN: 0px 10px 10px 10px; FONT-FAMILY: Malgun Gothic, Consolas, Verdana; COLOR: #005555'> 'net usershare' returned error 255: net usershare: cannot open usershare directory /var/lib/samba/usershares. Error 허가 거부<br /> You do not have permission to create a usershare. Ask your administrator to grant you permissions to create a share.<br /> </div><br /> <br /> 해당 사용자 계정이 sambashare 그룹에 포함되어 있지 않기 때문에 발생하는 오류인데, usermod로 그룹을 추가합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > [그룹 추가] $ sudo usermod -a -G sambashare TESTAD\\test $ sudo adduser TESTAD\\test sambashare [그룹 삭제] $ sudo deluser TESTAD\\test sambashare </pre> <br /> 확인은 id 명령으로 합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > id -nG TESTAD\\test^user </pre> <br /> groups 명령으로도 확인이 가능한데, 아쉽게도 다시 로그인을 해야 adduser 했던 변경 사항이 반영되어 나타나므로 id 명령으로 확인하는 것이 빠릅니다. 허긴... 어쨌든 그룹 추가한 것을 samba에 반영하기 위해서는 어차피 다시 로그인을 해야 합니다. ^^; (또는 cat /etc/group을 통해 전체 그룹의 사용자를 확인할 수 있습니다.)<br /> <br /> 다시 로그인을 하고 나서, 폴더 공유를 시도하면 이제 공유가 됩니다. 그런데, 아쉽게도 AD 계정에 공백이 있는 경우에는 다음과 같은 식으로 오류가 발생합니다.<br /> <br /> <div style='BACKGROUND-COLOR: #ccffcc; padding: 10px 10px 5px 10px; MARGIN: 0px 10px 10px 10px; FONT-FAMILY: Malgun Gothic, Consolas, Verdana; COLOR: #005555'> 'net usershare' returned error 255: net usershare add: cannot convert name "TESTAD\test^user" to a SID. NT_STATUS_NONE_MAPPED.<br /> </div><br /> <br /> 이 부분은 어쩔 수 없군요. 해결책을 발견할 수 없었습니다. 대신 공유 옵션 창에서 "Allow others to create and delete files in this folder" 옵션을 켜면 다른 사용자 계정으로도 공유가 되긴 하므로 그렇게 우회를 해야 합니다. (공백이 없는 사용자라면 아무런 이상 없이 폴더 공유가 잘 됩니다.)<br /> <br /> 자, 그럼 마지막으로 GUI 환경이 아닌 명령행으로 폴더 공유 하는 방법을 알아봐야겠군요. 그런데, 이게 좀 난감합니다. 명령어는 없는 것 같고 /etc/samba/smb.conf 파일을 직접 편집해야 합니다. (혹시, 명령어를 아시는 분은 덧글 부탁드립니다.)<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;' > Samba File Server ; <a target='tab' href='https://help.ubuntu.com/10.04/serverguide/samba-fileserver.html'>https://help.ubuntu.com/10.04/serverguide/samba-fileserver.html</a> </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;' > [myshare] comment = Ubuntu File Server Share path = /srv/samba/testshare browsable = yes guest ok = no read only = no create mask = 0755 </pre> <br /> 이후 smb 데몬을 재시작하고, 실제 해당 폴더를 만들어 줍니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ sudo service smbd restart $ mkdir -p /srv/samba/share </pre> <br /> 이제 폴더에 대한 권한은 chown과 chmod를 이용하여 적절하게 변경시켜 주면 다른 윈도우 컴퓨터에서 Active Directory 사용자 계정으로 읽어들일 수 있습니다.<br /> <br /> 그럼, 윈도우 측에서 해당 컴퓨터로 공유 폴더를 살펴보면 "myshare"라는 이름으로 공유가 되어 있는 것을 볼 수 있습니다.<br /> <br /> <!--<br /> 위와 같이만 하면 폴더를 들어가서 파일들을 읽어오는 것은 가능하지만 쓰기가 불가능합니다. <br /> <br /> sudo chown [user] /srv/samba/testshare/<br /> sudo chown .[group] /srv/samba/testshare/<br /> --><br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1219
(왼쪽의 숫자를 입력해야 합니다.)