본문 바로가기

IT

[Ubuntu/Linux] 삼바서버, 이렇게 설정하면 된다

대학교 여름특강으로 리눅스 강의를 들었던 기억이 나네요.

말총머리를 한 꽤나 마른 강사분이 열심히 수업을 하셨었죠.


강의 첫 날, 두꺼운 리눅스 책을 한 권 던져주시며 한달 동안 전부 다룰거라고 하셨죠.

그 두꺼운 리눅스 책의 한 챕터가 삼바서버였습니다.

당시에는 서버를 구축할 필요가 없어서 건성으로 흘리며 수업을 들었습니다.


하지만, 시간이 흘러 신입사원이 되었을때,

회사에서 제일 먼저 한 일 중 하나가 삼바서버를 구축하는 것이었습니다.


개인용으로 지급된 컴퓨터가 2대였는데,

한 대는 윈도우, 다른 한 대는 리눅스 PC로 활용하였습니다.


업무를 하다보면,

윈도우와 리눅스 PC 간에 데이터를 교환을 해야할 일이 생기더군요.

그래서 리눅스 PC에 삼바 서버를 설치하였습니다.


현재 집에서도 회사에서처럼 한 대는 윈도우를 다른 한 대는 우분투를 사용하고 있습니다.

따라서 이 포스팅에서는 우분투 14.04와 윈도우7을 기준으로,

삼바서버 설정방법을 정리해볼까 합니다.


우분투 PC에 삼바서버를 설치하면,

윈도우 PC의 파일탐색기로 우분투 PC에 접근하여 파일을 읽고 쓸 수 있습니다.


이러한 일이 가능한 것은,

MS사가 윈도우 운영체제 간에 혹은 이종의 운영체제와 네트워크를 통해 파일을 공유하려고 분산 파일시스템 프로토콜을 개발하였고,

삼바서버는 그러한 분산 파일시스템을 지원하기 위해 개발되었기 때문이죠.


우선 리눅스 PC에 삼바서버를 설치해보죠.

$ sudo apt-get install samba



삼바를 설치하면 삼바설정파일이 생성됩니다.

삼바설정파일을 열어봅니다.

$ sudo vi /etc/samba/smb.conf


삼바설정파일은 크게 두 부분으로 구성되어 있습니다.

[global] 항목은 삼바서버 전체에 대한 설정을 할 수 있습니다.

[share] 항목은 개별적인 공유영역에 대한 설정을 할 수 있습니다.


[global] 항목에서 주의깊게 고민해야 하는 부분은 두 가지입니다.

1. hosts allow = 192.168.1.

삼바서버에 접근가능한 IP 대역을 선택할 수 있습니다.

위의 예는 192.168.1.0 ~ 192.168.1.255에서 오는 IP만 공유영역에 접근할 수 있습니다.

만약 모든 IP에 대해 접근을 가능하게 하려면 위의 항목을 주석처리해야만 합니다.


2. security = [share|user]

security 정책을 결정할 수 있습니다.

일반적으로 share 아니면 user를 사용합니다.

share는 인증받지 않은 사용자에게도 공유영역을 열어줍니다.

user는 오직 인증받은 사용자만 삼바서버에 접근할 수 있게 합니다.


[share] 항목은 [global]의 security를 무엇으로 설정했느냐에 따라 내용이 달라집니다.

security = share로 설정하면 공유영역을 아래처럼 설정하면 됩니다.

 

[share]

  comment = Share Directories

  path = [공유하고자 하는 디렉토리 절대경로]

  read only = no

  guest = ok


공유하고자 하는 디렉토리 절대경로를 적어주고,

read 권한만 열어주려면 read only = yes로 하고,

read / write 권한을 모두 주려면 read only = no로 해야 합니다.

write 권한을 주려면 공유영역에 아래처럼 리눅스 권한을 주어야 합니다.

$ chmod +w [공유하고자 하는 디렉토리 절대경로]


security = user로 설정하면,

- 공유영역을 아래처럼 설정하고

- 인증사용자가를 등록해야 합니다.


[share]

  comment = Share Directories

  path = [공유하고자 하는 디렉토리 절대경로]

  read only = no

  valid users = [허용하고자 하는 리눅스 유저ID]


공유영역을 설정하는 방식은 security = share와 대동소이하지만,

valid users로 인증받은 사용자만 접근하도록 설정할 수 있습니다.

valid users에는 윈도우 ID를 적는 것이 아니라

리눅스 ID를 적어놓아야 합니다.

모든 삼바 윈도우 ID는 설정시부터 리눅스 ID와 매핑되게 되어 있기 때문에,

매핑되는 리눅스 ID를 적어놓으면 됩니다.


삼바서버를 위한 사용자 계정관리는 GUI 툴을 사용하는 것이 편리합니다.

$ sudo apt-get install system-config-samba



$ sudo system-config-samba

위의 명령어를 치면 삼바설정을 위한 GUI 툴이 나타납니다.



여기서는 사용자에 대한 설정을 합니다.

설정 > Samba 사용자



위에서 사용자 추가를 선택합니다.

새로운 창이 나오며 삼바사용자를 추가/편집할 수 있는 창이 나옵니다.



Unix 사용자명은 이미 생성된 리눅스 사용자 계정을 넣으면 됩니다.

향후 윈도우즈에서 삼바서버로 접근을 하면 여기서 설정한 사용자 계정 권한으로 파일을 읽고/쓰죠.

Windows 사용자명은 윈도우 로그인 ID를 입력하면 됩니다.


사용자계정까지 설정을 완료했다면 삼바서버를 restart 합니다.

$ sudo service smbd restart


그리고 윈도우즈에서 "실행"을 띄운 후,

아이피를 입력해서 삼바서버에 접근을 해보세요.



공유설정을 해놓은 디렉토리가 표시됩니다.

디렉토리에 진입하고자 더블클릭을 하면,

사용자 계정과 암호를 입력하라는 창이 나옵니다.

여기에 위에서 설정한 Windows 사용자명과 Samba 암호를 입력합니다.

접속에 성공하면 Unix 사용자명의 권한을 가지고 파일에 접근합니다.


여기까지 설명한 설정파일을 붙여놓습니다.

smb.conf


도움이 되면 좋겠군요. :)


+ 추가, 2015. 6. 4

윈도우에서 네트워크 드라이브로 설정하여 윈도우 탐색기에 바로 노출할 수 있습니다.

위의 '실행'에서 삼버서버에 접속하면 아래와 같이 공유된 디렉토리가 나옵니다.

공유된 디렉토리 위에서 마우스 오른 버튼을 누르면 메뉴가 나옵니다.



네트워크 드라이브 연결을 누르면,

아래와 같은 팝업이 나옵니다.



윈도우 탐색기서 표시될 드라이브를 설정합니다.

그리고 "로그온할 때 다시 연결"에 체크해둡니다.

그러면 매번 네트워크 드라이브에 접속하기 위해 아이피를 적을 필요가 없어집니다.

이미 윈도우탐색기에 위에서 설정한 드라이브로 표시될테니까요. :)


끝_