삼바 서버를 이용하는 이유
삼바 설정
방법 1: X Window에서 직접 설정
방법 2: SWAT를 이용한 삼바 설정
방법 3: 삼바 환경 파일 직접 수정
삼바 실행
MS윈도우에서 연결하기

삼바 서버를 이용하는 이유

개발 호스트에 tftp를 설치하면 타겟보드에서 부트로더를 이용하여 커널 이미지나 램디스크 이미지를 타겟 보드로 전송할 수 있습니다. 또한 tftp를 명령을 이용해서 개발 호스트에 있는 파일을 타겟보드로 전송할 수 있습니다. 그러나 부트로더에서 사용할 수 있다는 장점이 있으나 일반적으로 개발 호스트에 있는 파일을 타겟보드에서 이용하기에는 불편합니다.

또한 개발용 호스트에 nfs 서버를 이용하면 앞서 말씀드린 tfpt의 단점을 보안하고 타겟보드에서 호스트의 디렉토리를 마치 자신의 디렉토리로 마운트하여 사용할 수 있어서 복사할 필요없이 개발 호스트의 파일을 사용할 수 있습니다.

이렇게 tftp를 이용하면 부트로더를 이용하여 파일을 전송할 수 있고, nfs를 이용하면 평상 시에 개발 호스트의 공유 디렉토리를 사용할 수 있습니다. 그러나 리눅스가 개발을 위한 컴파일러와 프로그램 소스 및 관련 라이브러리 등의 공유 자원을 제공하고 실제 에디터를 이용한 개발을 Microsoft Windows(이하 MS윈도우)에서 진행하기 위해서는 타겟보드가 nfs를 이용하여 개발 호스트의 공유영역을 사용하듯이, MS 윈도우도 개발 호스트의 공유 영역을 사용할 방법이 있어야 겠습니다.

이렇게 MS윈도우나 기타 다른 플랫폼의 호스트에게 자원을 공유해 주는 서버가 삼바 서버이며, 개발 호스트가 삼바 서버를 운영하면 MS윈도우는 네트워크 드라이브로 연결할 수 있고, 개발자는 리눅스 호스트의 공유 디렉토리를 마치 자신의 MS윈도우의 드라이브로 사용할 수 있어서 개발하기가 용이해 집니다.

삼바 설정

삼바를 설정하는데에는 3가지 방법이 있습니다.

  1. X Window에서 설정하는 방법
    개발 호스트를 직접 사용할 수 있다면 제일 간단하고 편안한 방법입니다.
  2. SWAT를 이용하는 방법
    개발 호스트가 멀리 있어서 직접 사용할 수 없을 때 원격으로 설치하는 방법으로 웹을 이용합니다.
  3. 직접 samba 환경 파일을 수정하는 방법
    개발 호스트가 멀리 있어서 직접 사용할 수 없을 때, 텔넷을 이용하여 VI에디터 등을 이용하여 환경파일의 내용을 직접 수정하는 방법입니다.

설정하는 방법이 3가지가 있습니다만 저자의 입장으로는 1번과 3번 사용을 권하고 싶습니다. 2번의 SWAT같은 경우 최근 리눅스 배포본에 따라서 설치되지 않는 경우가 있어서 http://us4.samba.org 에서 직접 파일을 내려 받아 설치해야 하며, 웹 서버를 이용해야 하므로 웹 서버를 설치해야 합니다.

방법 1: X Window에서 직접 설정

개발 호스트를 직접 사용할 수 있고 X 윈도우가 설치되어 있다면 간편한 방법을 설정할 수 있습니다. 아래의 설명은 CentOS5에서의 화면 캡쳐입니다. [시스템 메뉴>>관리>>서버설정>>Samba]를 선택합니다.

[삼바 서버 설정] 윈도우가 출력됩니다. 제일 먼저 삼바의 공유 영역을 사용할 사용자를 등록합니다.

삼바 유저를 추가하기 위해 [사용자 추가] 버튼을 클릭합니다.

사용자 정보를 입력합니다. 이때 MS윈도우의 아이디와 암호를 입력하시면 이후에 삼바 공유 디렉토리를 이용할 때 로그인 과정이 없어서 편리합니다.

사용자가 추가되었습니다. [확인] 버튼을 클릭합니다.

새로 추가한 삼바 사용자에게 제공할 공유 디렉토리를 지정하기 위하여 [공유 추가] 버튼을 클릭합니다.

공유할 디렉토리와 공유 이름을 입력하고 사용자를 지정하기 위힌 [접근] 탭을 선택합니다.

새로 추가한 사용자를 선택해 줍니다.

[확인]버튼을 클릭하시면 새로운 공유 정보가 아래와 같이 등록됩니다.

방법 2: SWAT를 이용한 삼바 설정

SWAT(Samba Web Administration Tool)은 리모트로 삼바를 쉽게 설정하기 위한 툴로 웹 서버를 통한 웹브라우저로 설정합니다. 또한 SWAT가 실행되는 시스템에 있는 smb.conf 파일에 액세스를 제공하는 inetd에서 실행되도록 디자인된 CGI 스크립팅 어플리케이션입니다.

  • SWAT 설치

Fedora Core 5 이상부터는 SWAT를 포함하지 않기 때문에 samba 홈페이지에서 swat 툴을 다운 받아서 설치해야 합니다. 또한 Fedora Core 버전에 따라 제공되는 swat 버전이 틀릴 수 있다.

다운로드 : http://us4.samba.org/samba/ftp/Binary_Packages/Fedora/RPMS/i386/core/

설치 예제에 사용된 Fedora Core 6에 해당하는 버전은 아래와 같습니다.

samba-3.0.24-3.gc2.i386.rpm
samba-client-3.0.24-3.gc2.i386.rpm
samba-common-3.0.24-3.gc2.i386.rpm
samba-doc-3.0.24-3.gc2.i386.rpm
samba-swat-3.0.24-3.gc2.i386.rpm

다운 받은 swat 관련 파일들을 순서대로 설치합니다.

]# rpm -Uvh -nodeps -force samba-3.0.24-3.gc2.i386.rpm
]# rpm -Uvh -nodeps -force samba-client-3.0.24-3.gc2.i386.rpm
]# rpm -Uvh -nodeps -force samba-common-3.0.24-3.gc2.i386.rpm
]# rpm -Uvh -nodeps -force samba-doc-3.0.24-3.gc2.i386.rpm
]# rpm -Uvh -nodeps -force samba-swat-3.0.24-3.gc2.i386.rpm

패키지 설치시 *.tdb 파일이 없다는 경우, common 과 client 설치시 samba-3.0.24-3.gc2.i386.rpm 파일을 재 설치하면 됩니다.

  • SWAT 환경 설정

/etc/xinetd.d/swat 파일을 다음과 같이 변경합니다.

# vi /etc/xinetd.d/swat

[ 수정 전 ]

# default: off
# description: SWT is the Samba Web Admin Tool. Use swat \
#              to configure your Samba server. To use SWAT, \
#              connect to port 901 with your favorite web browser.
service swat
{
disable = yes            // no 로 변경합니다. port = 901 socket_type = stream wait = no only_from = 127.0.0.1 user = root server = /usr/sbin/swat log_on_failure += /usr/sbin/swat per_source = 11 }

[ 수정 전 ]

# default: off
# description: SWT is the Samba Web Admin Tool. Use swat \
#              to configure your Samba server. To use SWAT, \
#              connect to port 901 with your favorite web browser.
service swat
{
disable = no            // no 로 변경했습니다. port = 901 socket_type = stream wait = no only_from = 127.0.0.1 user = root server = /usr/sbin/swat log_on_failure += /usr/sbin/swat per_source = 11 }

위와 같이 수정하였다면 xinet 데몬을 재실행을 한다.

]# /etc/init.d/xinetd restart
xinetd 를 정지 중:                                         [실패]
xinetd (을)를 시작 중:                                     [  OK  ]
]# 
  • MS윈도우에서 설정

리눅스 서버에 SWAT를 띄우기 위한 환경 설정을 모두 마쳤다면 원래의 목적인 윈도즈에서 인터넷 익스플로러(이하 IE)를 이용하여 SWAT를 실행시킵니다. IE를 실행시키고 주소 창에 다음을 입력합니다.

http:// [해당IP]:901 예) http://192.168.10.20:901

SWAT는 901 포트를 이용하여 통신하므로 뒤에 ":901"을 추가했습니다.

여기서 사용하는 모든 예제는 위의 IP 설정을 바탕으로 설명하겠습니다. 각자의 환경에 맞게 수정하여 사용하면 되겠습니다.

네트워크 암호 입력이라는 창이 뜨면 사용자 이름과 암호를 입력합니다. 정상적으로 로그인이 되면 다음과 같은 SWAT 화면이 뜹니다.

GLOBALS 설정하기

위의 버튼을 클릭하여 화면이 나타나면 다음의 그림과 같이 설정합니다.

workgroup에 윈도우즈 네트웍에서 사용할 작업그룹 이름을 입력합니다. Server string에 입력하는 내용은 네트웍 환경에서 설명 필드에 나타납니다. 모든 설정을 하였으면 상단의 [Commit Changes] 버튼을 눌러 저장해야 합니다.

SHARES 설정하기

위의 버튼을 클릭하여 화면이 나타나면 다음의 그림과 같이 설정합니다.

위의 화면에서 [Create Share]에 root 라고 입력하고, 버튼을 클릭하면 아래와 같은 화면이 다시 나타납니다. 아래의 화면에서 Advanced View 버튼을 클릭하면 새로운 화면이 나타납니다.

Advanced View 버튼 클릭 화면에서 다음의 그림에 나타난 부분과 같이 수정을 한 후, 화면 상단의 Commit Changes를 클릭하여 수정된 내용이 저장되도록 합니다.

Basic View를 누르면 다음과 같은 화면이 다시 나타납니다.


STATUS

위의 버튼을 클릭하여 화면이 나타나면 다음의 그림과 같이 설정합니다.

모든 설정을 하였다면 삼바관련 데몬을 다시 실행 시켜야 합니다. 위의 화면에서 Restart smbd, Restart nmbd 버튼을 차례로 클릭하여 데몬을 재실행 시킵니다.

여기서 데몬을 재실행 시켰을 때 다음과 같이 나타나지 않으면 데몬이 제대로 실행 되지 않은 것입니다.

smbd: running
nmbd: running

 

방법 3: 삼바 환경 파일 직접 수정

  • 삼바 유저 등록

삼바를 사용할 유저를 등록합니다.

]$ su -?        // root 계정으로 로그인 합니다. 또는 root 로 로그인 하십시오. 
암호:?          // root 암호를 입력합니다.

]# smbpasswd -a jwjw?       // 삼바를 사용할 유저를 등록합니다.
New SMB password:           // 암호를 등록합니다.
Retype new SMB password:    // 암호 확인을 위해 다시 입력합니다.
  • 삼바 환경 설정

이제 삼바 유저에 공유할 정보를 삼바 환경 파일을 직접 수정해서 등록하겠습니다. 삼바 환경 설정 파일은 /etc/samba/smb.conf 이므로 직접 파일을 열어 아래의 내용을 참고하여 수정하여 주십시오.

[global]
workgroup = workgroup                        # 윈도우 네트워크 환경의 작업 그룹 이름을 입력했습니다.
dos charset = CP949
unix charset = CP949
load printers = yes
printing = lpmg
server string = jwCentOS                     # 윈도우 탐색기에 출력할 컴퓨터 이름입니다.
printcap name = /etc/printcap
cups options = raw
log file = /var/log/samba/%m.log
max log size = 50
security = USER                                # 사용자 계정으로 설정합니다. 여기서 설명은 생략합니다.
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
password server = None
guest ok = no
winbind use default domain = no

[jwjw]                                    # jwjw 유저에 대한 삼바 공유 폴더 설정입니다.
comment = jwjw samba           # 탐색기에서 설명 컬럼에 출력할 내용입니다.
path = /home/jwjw/prjs           # jwjw 가 사용할 리눅스의 공유 폴더 경로입니다.
writeable = yes
public = no
create mask = 0644                 # 윈도우나 다른 시스템에서 파일을 생성했다면 기폰 파일 모드는 0644
directory mode = 0755            # 윈도우나 다른 시스템에서 디렉토리를 생성했다면 기폰 모드는 0755

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
printable = yes

삼바 실행

삼바 환경을 설정햇으므로 삼바를 실행 시켜야 합니다. 삼바 서버의 실행 파일은 /etc/init.d/smb 입니다.

]# /etc/init.d/smb restart
MB 서비스를 종료 중:                                       [  오류  ]
NMB 서비스를 종료 중:                                      [  오류  ]
SMB서비스를 시작 중:                                       [  OK  ]
NMB서비스를 시작 중:                                       [  OK  ]
]#     

삼바가 실행되었습니다. 이렇게 /etc/init.d/smb를 직접 호출하여 실행할 수 있습니다만 ntsysv를 이용하여 부팅할 때 마다 자동으로 실행하도록 설정해 두면 편리합니다.

]# ntsysv

smb 서비스를 선택한 후 [확인]을 선택합니다.

MS윈도우에서 연결하기

이렇게 삼바 환경을 설정하고 서버를 구동 시키고 탐새기에서 네트워크를 검색해 보면, 아래와 같이 삼바 서버의 공유 폴더가 검색이되고 유저에 할당된 공유 폴더에 접근할 수 있습니다.

이제 MS윈도우도 삼바의 공유 폴더를 이용하여 리눅스의 자원을 사용할 수 있게 되었습니다. 이 공유 폴더를 이용하여 MS윈도우에서 애용했던 에디터를 이용하여 리눅스 안에 프로그램을 작성할 수 있으며 필요 파일을 복사하거나 받을 수 있습니다.