리눅스 환경(Ubuntu)에서 개발을 편리하게! Samba 구축하기

리눅스에서 개발을 하다보면 파일 전송에 대한 이슈가 생길 수 있습니다. Windows 기반의 PC에 가상머신(Virtual Box 등)을 사용하면 공유 폴더를 통해 파일 전송을 간편하게 할 수 있으나 별도의 리눅스 기반의 PC나 서버에 접속하여 사용하다 보면 파일 전송이 꽤나 불편합니다. 

관련하여 WinSCP를 사용하면 Windows 탐색기 같이 간편하게 파일 복사를 할 수도 있습니다. 

하지만 WinSCP를 사용한 파일전송도 때때로 불편할 때가 있습니다. 이럴 경우에는 아예 Windows PC에 리눅스의 하드디스크를 네트워크 드라이브로 연결하여 사용하는 방법이 있습니다. 즉 “삼바(Samba)”를 리눅스 PC나 서버에 설치하여 사용하는 방법입니다. 

이번 포스트에서는 “삼바(Samba)”를 설치하고 설정하는 방법에 대해 알아봅니다. 

삼바(Samba) 설치하기

삼바 관련 설정은 우분투(Ubuntu) 리눅스 기반으로 설명을 드립니다. 먼저 사용하고 있는 우분투에 접속하여 삼바를 설치합니다. 

$ sudo apt-get install samba

위의 명령어로 삼바 패키지를 설치하면 위의 화면과 같이 설치가 완료됩니다. 설치는 매우 간단합니다.

삼바 설정하기

설치가 끝났으면 우분투에서 삼바를 조건에 맞게 설정을 해줘야 합니다.  먼저 사용하는 계정에 삼바 패스워드를 설정합니다. 

$ sudo smbpasswd -a (계정명)

위와 같이 진행이 되면 삼바 패스워드가 성공적으로 설정된 것입니다. 다음으로는 vi 에디터로 smb.conf 파일을 수정합니다. 

 $ sudo vi /etc/samba/smb.conf

[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700

# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# You may need to replace 'lpadmin' with the name of the group your
# admin users are members of.
# Please note that you also need to set appropriate Unix permissions
# to the drivers directory for these users to have write rights in it
;   write list = root, @lpadmin

[codedosa]
   comment = codedosa drive
   browseable = yes
   path = /home/codedosa
   printable = no
   public = no
   read only = no
   writable = yes
   create mask = 0700
   directory mask = 0700

예로 작성해본 smb.conf 파일입니다. 삼바를 처음 설치하면 위와 같이 프린터 관련 설정 항목만 존재합니다. 여기에 “[codedosa]” 같이 사용하려는 계정의 항목을 추가합니다. 

path는 삼바로 접근할 수 있는 리눅스의 최 상위 경로입니다. 저는 codedosa 라는 계정의 전체를 삼바로 사용하기 위해 위와 같이 경로를 설정하였습니다. 만약 특정 디렉토리만 설정하고 싶다면 “/home/codedosa/share” 의 형태로 설정이 가능합니다. 또한 codedosa 계정은 삼바로 읽기 쓰기가 다 가능하게 설정하였습니다. 만약 쓰기 금지를 설정하려면 read_only를 yes로 writable은 no로 설정하면 됩니다. 

항목이 추가되었다면 :wq 를 눌러서 저장을 하고 빠져나옵니다. 

삼바 데몬 재 구동 및 Windows에서 연결하기

삼바를 설치하면 삼바 데몬(smbd -D)이 바로 실행이 됩니다. 그런데 smb.conf 파일을 설정하고 저장하고 나서 적용하려면 삼바 데몬의 재 시작이 필요합니다. 

$ sudo service smbd restart

위의 명령어로 삼바 데몬을 재 구동을 시켜주면 좀전에 설정한 내역들이 적용됩니다. 

그럼 Windows 에서 리눅스에 삼바로 접근이 되는지 확인을 해볼까요? 먼저 Windows 에서 탐색기를 실행합니다. 다음에 탐색기 창에서 “\\(리눅스 서버 IP)” 를 입력 후 엔터를 칩니다. 

위의 화면과 같이 리눅스 서버의 IP를 입력하면 됩니다. 

IP를 입력했더니 위와 같이 codedosa 라는 폴더가 나타나는 것을 볼 수 있습니다. 삼바가 정상적으로 설정이 된거라고 볼 수 있습니다. codedosa 라는 폴더를 클릭해 볼까요?

클릭했더니 “네트워크 자격 증명 입력” 이라는 창이 나타납니다. 여기서 리눅스 서버의 계정과 패스워드를 입력합니다. 패스워드는 삼바 설정시 설정했던 패스워드 입니다. 

입력 하고 확인을 누르면….

제가 설정했던 codedosa의 home 디렉토리를 Windows 탐색기에서도 볼 수 있습니다. 그럼 설정이 잘 되었는지 확인해 볼까요? Windows 탐색기에서 새폴더를 한번 생성해 보겠습니다. 

정말 폴더가 생성이 되는군요. 삼바가 잘 설정이 된 것을 확인할 수 있습니다. 

Windows 에서 네트워크 위치 추가하기

일단 삼바의 설정은 완료가 되었습니다. 그런데 Windows PC를 재부팅하거나 껐다 켜게 되면 좀전에 접속했던 네트워크 공유 폴더가 사라지게 됩니다. 따라서 다시 리눅스 서버의 IP를 입력하고 계정 패스워드를 입력하게 되는 불편함이 존재합니다. 

그래서 아예 Windows 에서 네트워크 위치를 추가해주면 이후에 리눅스 서버를 접근하는데에 편리합니다. 

먼저 Windows 탐색기에서 마우스 오른쪽 버튼을 누르면 “네트워크 위치 추가” 라는 메뉴가 있습니다. 그걸 클릭해 줍니다. 

클릭을 하면 “네트워크 위치 추가 마법사” 가 나타납니다. 

다음을 누르면 위치 추가 마법사가 진행됩니다. 

별다른 거 없이 사용자 지정 네트워크 위치 선택을 선택하고 “다음” 버튼을 누릅니다. 

위치를 추가할 주소를 입력해 줍니다. “\\(리눅스서버IP)\계정이름” 을 입력하고 “다음”을 누릅니다. 

삼바 계정에 잘 접근이 되면 위와 같이 바로가기 이름을 만들거냐고 물어봅니다. 여기서 입맛에 맞게 입력해주고 “다음” 을 누릅니다. 

그럼 위와 같이 “네트워크 위치 추가 마법사”가 완료되었다고 메시지가 뜹니다. 이제 Windows 탐색기에 리눅스 계정의 네트워크 위치가 보이게 됩니다. “마침”을 누릅니다. 

자 보면 탐색기에서 “codedosa” 라는 네트워크 폴더가 생성된게 보이죠? 이후에는 리눅스 서버에 접근할때 폴더를 클릭하면 접근이 가능합니다. 

네트워크 위치는 폴더 외에도 드라이브 형태로 추가도 가능합니다. 그럼 한번 생성해 보겠습니다. 먼저 Windows 탐색기에서 “내 PC”의 아이콘에서 마우스 오른쪽 버튼을 클릭합니다. 

팝업 메뉴에 “네트워크 드라이버 연결” 이라는 문구가 보이죠? 클릭합니다. 

연결할 드라이브와 네트워크 폴더의 위치를 설정합니다. 네트워크 폴더는 좀전에 설정했듯이 “//(리눅스서버 IP)/(계정)” 형태로 입력해주면 됩니다. “마침” 을 클릭합니다. 

좀전에 설정한 리눅스 서버로 “네트워크 드라이브” 가 생성된게 보이죠? 이후에는 간편하게 네트워크 드라이브로 접근해서 파일 복사 및 디렉토리 생성, 데이터 백업도 가능합니다. 물론 Windows PC를 재부팅 하거나 껐다 켜면 접근시에 패스워드를 다시 입력해줘야 접근이 가능합니다. 

이상으로 우분투 리눅스에서 삼바 설정에 관해 알아봤습니다. 이제 리눅스에서 개발시에 편리하게 Windows PC와 리눅스 서버 간에 파일전송이 가능하게 되었습니다. 개발에 많은 도움이 되었으면 합니다. 

'코드도사(codedosa.com)'에는 쿠팡파트너스 등의 제휴링크가 포함되어 있으며 수수료를 제공받을 수 있습니다.