강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스 삼바(SAMBA)서버 구축 관리 실무강좌 1편

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

제목 : 리눅스 삼바(SAMBA)서버 구축 관리 실무강좌 



       1. 리눅스서버와 SAMBA 활용 개론

       2. 삼바서비스를 위한 데몬 실행하기

       3. 삼바 설정파일 smb.conf 다루기

       4. 삼바 NETBIOS네임서버 데몬 nmbd

       5. 삼바서버 주데몬 smbd

       6. 삼바클라이언트 유틸리티 smbclient

       7. 삼바 원격마운트를 위한 smbmount smbumount






1. 리눅스서버와 SAMBA 활용 개론

 

흔히 우리는 리눅스서버를 파일서버로 사용하는 경우를 많이 봤습니다. 리눅스서버를 파일서버로 구축하기 위하여 가장 많이 활용하는 것이 FTP서버입니다. Proftpd와 같은 FTP서버를 이용하여 파일서버를 구축하면 여러가지 장점과 단점이 있습니다이 웹사이트(www.linux.co.kr) FTP서버 강좌 편에서도 이미 말씀드렸듯이 proftpd를 설치하고 데몬만 실행되어 있다면 리눅스서버가 바로 파일서버역할을 하게 됩니다. 하지만 설치되어 있는 FTP서버를 이용하기 위해서는 FTP클라이언트프로그램을 이용해야하고 매번 접속할 때마다 ID와 패스워드를 입력해야하는등 편리함이 있는 반면 불편한 점이 다소 존재합니다.

 

파일서버를 FTP서버로만 구축할 수 있는 것은 결코 아닙니다. 이번 장에서 설명할 삼바를 이용하면 아주 쉽고 편리하게 파일서버를 구축할 수 있습니다. 그리고 삼바를 활용하면 특별한 클라이언트프로그램을 이용하지 않아도 우리가 가장 흔하게 사용하는 웹브라우즈를 이용하여 아주 편리하고 쉽게 파일을 업로드/다운로드 할 수가 있습니다. 또한 삼바를 이용하면 요즘 흔하게 사용하는 웹폴더로 사용할 수도 있으며 또한 간단하게 탐색기에서 네트워크드라이브 설정만으로 원격지의 삼바서버에 있는 특정 폴더를 자신의 탐색기내의 드라이브로 사용할 수도 있습니다. , 원격지 서버의 특정폴더를 자신의 PC에 있는 하나의 하드디스크처럼 사용할 수 있다는 의미입니다.

 

물론, 삼바가 이런 역할만을 하는 것은 아닙니다. 원래 삼바는 이기종 운영체제에서 자원을 공유하기 위한 목적으로 개발된 어플리케이션입니다. , 네트워크 프린터를 설정하여 프린터공유를 한다든지 하는등의 네트워크를 이용한 자원공유를 위한 목적으로 사용할 수 있습니다. 하지만 삼바의 여러가지 기능들이 있기는 하지만 잘 사용하지도 않는 기능과 불필요한 기능들을 배우고자 하는 것은 결코 아닙니다. 현재 가장 많은 용도로 사용되는 네트워크 드라이브의 기능과 웹폴더의 기능에 대한 실질적인 목적으로 삼바를 설명하겠습니다. , 이장의 마지막 부분에 보시면 삼바를 이용하여 웹폴더를 구현하는 실무적인 방법에 대해서 다루고 있습니다.

 

먼저, 삼바를 어떤 목적으로 사용하기 위해서든 일단은 서버에 설치되어야할 삼바관련 패키지들이 있습니다. 실무적인 활용방법을 보기 전에 먼저 삼바를 설치해 보도록 하겠습니다.

 

삼바를 사용하기 위해서는 모두 5개의 삼바패키지가 있습니다. 이들 모두가 필요한 것은 아니지만 가능한 모두 설치해 주시는 것이 좋습니다. 5개의 삼바패키지는 다음과 같습니다.

 

. 삼바서버패키지 : samba-3.0.8-0.pre1.3

. 삼바클라이언트 패키지 : samba-client-3.0.8-0.pre1.3

. 삼바서버와 클라이언트에서 모두사용하는 파일들 패키지 : samba-common-3.0.8-0.pre1.3

. 삼바서버 웹관리 패키지 : samba-swat-3.0.8-0.pre1.3

. 삼바서버 설정툴 패키지 : system-config-samba-1.2.21-1

 

이들 5개의 패키지들을 다운받고 설치하는 간단한 예를 보도록 하십시요.

 

삼바설치를 위한 rpm파일들 다운로드하기

 

먼저 위의 패키지들은 ftp.superuser.co.kr에서 다운로드 할 수 있습니다. 아래의 예와 같이 wget을 이용하여 5개의 삼바패키지들을 다운로드하도록 하십시요. 아래의 5개 명령어들을 그대로 복사하여 실행하면 다운로드가 됩니다.

wget http://ftp.superuser.co.kr/pub/fedora/core3/RPMS/samba-3.0.8-0.pre1.3.i386.rpm

wget http://ftp.superuser.co.kr/pub/fedora/core3/RPMS/samba-client-3.0.8-0.pre1.3.i386.rpm

wget http://ftp.superuser.co.kr/pub/fedora/core3/RPMS/samba-common-3.0.8-0.pre1.3.i386.rpm

wget http://ftp.superuser.co.kr/pub/fedora/core3/RPMS/system-config-samba-1.2.21-1.noarch.rpm

wget http://ftp.superuser.co.kr/pub/fedora/core3/RPMS/samba-swat-3.0.8-0.pre1.3.i386.rpm

 

 

삼바패키지 설치하기

 

이제 다운로드한 패키지들을 설치해 보도록 하겠습니다. 아래와 같이 rpm명령어를 이용하여 Uvh옵션을 사용하여 다운로드한 5개의 삼바패키지를 설치합니다. 아래 rpm명령어에서 nodeps라는 옵션은 rpm설치시에 의존성문제가 있다면 이를 무시하고 설치하라는 옵션입니다.의존성문제로 인하여 설치되지 않을 때는 이를 무시하고 설치하기 위하여 nodeps라는 옵션을 주로 사용합니다.

[root@bible ~]# rpm -Uvh --nodeps samba-3.0.8-0.pre1.3.i386.rpm

warning: samba-3.0.8-0.pre1.3.i386.rpm: V3 DSA signature: NOKEY, key ID 4f2a6fd2

Preparing...                ########################################### [100%]

   1:samba                  ########################################### [100%]

[root@bible ~]# rpm -Uvh --nodeps samba-client-3.0.8-0.pre1.3.i386.rpm

warning: samba-client-3.0.8-0.pre1.3.i386.rpm: V3 DSA signature: NOKEY, key ID 4f2a6fd2

Preparing...                ########################################### [100%]

   1:samba-client           ########################################### [100%]

[root@bible ~]# rpm -Uvh --nodeps samba-common-3.0.8-0.pre1.3.i386.rpm

warning: samba-common-3.0.8-0.pre1.3.i386.rpm: V3 DSA signature: NOKEY, key ID 4f2a6fd2

Preparing...                ########################################### [100%]

   1:samba-common           ########################################### [100%]

[root@bible ~]# rpm -Uvh --nodeps samba-swat-3.0.8-0.pre1.3.i386.rpm

warning: samba-swat-3.0.8-0.pre1.3.i386.rpm: V3 DSA signature: NOKEY, key ID 4f2a6fd2

Preparing...                ########################################### [100%]

   1:samba-swat             ########################################### [100%]

[root@bible ~]# rpm -Uvh --nodeps system-config-samba-1.2.21-1.noarch.rpm

warning: system-config-samba-1.2.21-1.noarch.rpm: V3 DSA signature: NOKEY, key ID 4f2a6fd2

Preparing...                ########################################### [100%]

   1:system-config-samba    ########################################### [100%]

[root@bible ~]#

 

간단하게 삼바를 설치하기 위하여 위의 예에서 삼바관련 5개의 패키지의 다운로드와 설치에 대해서 알아보았습니다.

 

설치된 삼바의 주요 파일들

 

다음은 방금 앞에서 설치했던 삼바패키지들에 의해 생성된 삼바관련 파일들입니다. 삼바를 공부하기 위해서는 이들 파일들에 대한 기본적인 이해와 사용법은 알고 있어야합니다. 아래 보시는 바와 같이 파일 개수가 좀 많다고 느끼시겠지만, 아래 설명한 파일의 개수는 실제로 설치된 삼바파일의 절반도 되지 않습니다. 아래 간단하게 설명한 삼바파일들에 대한 자제한 설명은 이어서 하도록 하겠습니다. 우선 여기서는 이들 파일들이 삼바서버에서 어떤역할을 하는가 정도만 확인해 두시기 바랍니다.

 

/etc/logrotate.d/samba : 삼바로그를 관리하기 위한 삼바로그 로테이트 스크립트 파일

/etc/rc.d/init.d/smb : 삼바데몬(nmbd, smbd)을 실행(종료,재시작)하기 위한 스크립트파일

/etc/sysconfig/samba : 삼바 제어판 설정파일

/usr/bin/smbstatus : 삼바서버에 로그인한 정보를 확인하기 위한 유틸리티

/usr/sbin/nmbd : 삼바 NetBIOS 데몬

/usr/sbin/smbd : 윈도우서버와 파일 및 프린터공유를 위한 삼바 주데몬

/usr/bin/smbclient : 삼바 클라이언트 유틸리티로서 삼바서버로 접속이 가능하도록 제공함.

/usr/bin/smbmount : 삼바 원격마운트 유틸리티

/usr/bin/smbumount : 삼바 원격마운트 해제 유틸리티

/etc/samba/ : 삼바의 주된 디렉토리

/etc/samba/lmhosts : 삼바서버 NetBIOS호스트파일(삼바서버에서 사용하는 호스트정보파일)

/etc/samba/smb.conf : 삼바서버의 주설정파일

/usr/bin/smbpasswd : 삼바사용자 생성,삭제 및 삼바사용자 패스워드 설정,변경 유틸리티

/usr/bin/testparm : 삼바서버 설정파일(smb.conf)점검 유틸리티

/etc/xinetd.d/swat : 삼바서버의 웹관리를 위한 xinetd환경의 삼바설정파일

/usr/sbin/swat : 삼바서버 웹관리툴

/usr/bin/system-config-samba : X환경에서의 삼바설정 유틸리티

/var/log/samba/  : 삼바로그 저장되는 디렉토리

/etc/samba/smbusers : 리눅스ID와 삼바ID가 다를경우에 이를 매칭하기위한 매칭테이블파일

 


 

2. 삼바서비스를 위한 데몬 실행하기

 

삼바를 설치하였으므로 이제 삼바를 직접 사용해 보기 위하여 먼저 삼바데몬을 실행해 보겠습니다. 삼바서비스를 위해서는 nmbd smbd(이들 데몬들은 뒤에서 자세히 설명함)이 각각 모두 실행되어 있어야합니다. 이 두데몬을 실행하기 위해서는 /etc/rc.d/init.d/smb스크립트를 이용하여 start라는 옵션을 사용하여 실행하면 됩니다. 중지하려면 stop, 재시작하려면 restart 옵션을 각각 사용하시면 됩니다.

 

먼저, 삼바데몬(nmbd, smbd)을 실행해 보도록 하겠습니다. 다음 예를 보십시요.

[root@bible ~]# /etc/rc.d/init.d/smb start

Starting SMB services: [  OK  ]

Starting NMB services: [  OK  ]

[root@bible ~]#

 

이제 이렇게 실행된 삼바데몬들을 ps로 확인해 보도록 하겠습니다. 다음 예를 보십시요.

[root@bible ~]# ps -ef | grep mbd

root      9424     1  1 06:49 ?        00:00:00 smbd -D

root      9428     1  0 06:49 ?        00:00:00 nmbd -D

root      9431  9424  0 06:49 ?        00:00:00 smbd -D

root      9433  4836  0 06:50 pts/1    00:00:00 grep mbd

[root@bible ~]#

 

위의 예와 같이 smbd데몬과 nmbd데몬이 각각 실행되어 있습니다. 이제 삼바서비스 이용이 가능해졌습니다. 삼바데몬을 실행할 때에 한가지 꼭 아셔야하는 것이 있습니다. , /etc/rc.d/init.d/smb스크립트를 이용하여 삼바데몬이 시작되면서 /etc/samba/smb.conf라는 삼바의 설정파일을 읽어서 그 설정에 알맞도록 실행이 된다는 것입니다. , 모든 서비스 데몬들이 마찬가지인 것처럼 삼바데몬실행과 그 데몬실행에 영향력을 행사하는 설정파일 smb.conf파일을 반드시 함께 생각해 달라는 의미로 말씀드린 것입니다.

 

, 그런 의미에서 이번에는 삼바설정파일인 /etc/samba/smb.conf파일을 살펴보도록 하겠습니다.

 

 

3. 삼바 설정파일 smb.conf 다루기

 

삼바서버의 모든 설정은 /etc/samba/smb.conf파일에서 합니다. , 삼바서버의 주된 설정파일입니다. 삼바서버를 제대로 활용하려면 이 파일의 설정법부터 정확하게 익혀두어야 합니다. 삼바의 실무적인 사용법을 배우기 전에 이번 절에서 먼저 /etc/samba/smb.conf파일의 설정법부터 보도록 하겠습니다.

 

설명을 하기전에 앞서 /etc/samba/smb.conf파일을 수정하였다면 삼바데몬을 실행하기에 앞서 반드시 testparm유틸리티를 이용하여 /etc/samba/smb.conf파일의 문법적합성을 검사하여 이 파일의 설정이 올바르게 되었는가를 확인하시기 바랍니다. , testparm유틸리티는 smb.conf파일의 문법이 정확한가를 검증하는 유틸리티입니다. testparm유틸리티에 대한 설명은 뒤에서 자세히 설명하였습니다.

 

먼저, smb.conf파일의 설정에는 다음과 같이 기본적으로 세부분으로 나뉘어져 있습니다.

 

- 글로벌설정: 글로벌 설정으로서 이 설정은 삼바서버가 공유하는 자원들에 공통적으로 적용할 기본값을 설정하는 곳입니다. 만약 여기서 설정한 값과 개별사용자의 설정값이 중복된다면 개별사용자의 설정값이 우선합니다. 이 글로벌설정은 [global]이라는 선언으로 시작하는 부분입니다.

-
자동홈디렉토리 : 리눅스 계정사용자들의 홈디렉토리를 로그인홈으로 사용하기 위한 설정으로서 [homes]로 시작하는 부분의 설정을 의미합니다.

 

- 프린터설정 : 네트워크 공유프린트에 대한 설정부분으로서 [printers]로 시작하는 부분의 설정을 의미합니다.

 

이외에도 []기호를 이용하여 얼마든지 추가설정이 가능합니다. 우리는 이번 장에서 삼바 개별사용자들의 접속설정을 위하여 [bible] 설정과 [public]설정등을 하게 될 것입니다.

 

unix charset = cp949

dos charset = cp949

display charset = cp949 

리눅스(유닉스)문자셋, 도스(DOS)문자셋, 그리고 디스플레이 문자셋을 각각 설정한 것입니다.

 

workgroup = superuser

workgroup옵션에는 NT도메인명 또는 워크그룹명을 지정하시면 됩니다. 위의 예는 그냥 superuser라고 입력하였습니다. 작업그룹명이므로 윈도우에서 Workgroup으로 사용하는 이름을 입력하시면 됩니다.

 

server string = SUPERUSER File Server

삼바서버의 이름쯤으로 생각하시면 됩니다. 설치한 삼바서버를 어떤용도로 사용할 것인가를 의미하는 이름을 지어서 임의대로 입력하시면 됩니다.

 

hosts allow = 192.168.1. 192.168.2. 127.

이 옵션은 삼바서버의 보안을 위하여 매우 중요한 옵션입니다. 이 옵션은 삼바서버로의 접근을 허용하기 위한 설정으로서 아래의 예는 192.168.1. 네트웍과 192.168.2.네트워크, 그리고 로컬호스트에서의 접근을 허용하는 설정 예입니다. 이외에도 다양한 설정이 가능합니다.

 

load printers = yes

자동프린트 목록을 사용하기 위한 값으로 yes를 주시면 됩니다. , 네트워크 프린터를 삼바서버에서 관리하도록 하려면 반드시 yes로 설정해야합니다.

 

printcap name = /etc/printcap

printcap파일의 위치가 다른 곳에 있다면 그곳을 지정하시면 됩니다. 기본 위치는 /etc/printcap이므로 그대로 두셔도 됩니다.

 

printing = bsd

사용하시는 프린터가 표준이 아니라면 주석처리를 해두시는 것이 좋습니다. 현재 지원되는 프린터시스템의 종류로는 bsd, sysv, plp, lprng, aix, hpux, qnx등이 있습니다.

 

guest account = pcguest

삼바서버의 guest사용자를 허용하고자 할때에는 이 주석을 제거하십시요. , 이 옵션은 삼바서버에 손님권한으로 접속하였을 때에 어떤 권한을 부여할 것인가를 설정하는 것입니다. 가능한 시스템에 특별한 권한이 없는 nobody와 같은 권한으로 설정해 두시기 바랍니다. 만약 nobody사용자를 설정하지 않으시려면 useradd명령어로 /etc/passwd에 손님계정으로 사용할 계정을 생성하신 후에 그 계정을 설정하시기 바랍니다.

 

log file = /var/log/samba/log.%m

이 설정은 삼바서버로 접속하는 개별 사용자들의 호스트정보를 %m으로 받아서 개별 로그파일을 생성하도록 합니다.
 

log file = /var/log/samba/smbd.log

위의 접속한 호스트별로 로그파일을 사용하지 않는다면 이와 같이 하나의 로그파일을 사용할 수도 있습니다. , /var/log/samba/smbd.log파일에 삼바접속로그기록을 모두 하게 됩니다.

 

max log size = 50

로그파일의 용량크기를 KB단위로 제한하기위한 옵션입니다. , 위의 예는 50KB로 제한한 설정이며 만약 제한하지 않으시려면 0을 입력해 두시면 됩니다.

 

security = share

보안모드를 설정하는 것으로서 대부분의 삼바접속자들에게는 user레벨이 가장 알맞습니다. , user레벨을 설정하면 삼바서버에 접속하는 사용자는 반드시 윈도우에서 사용하는 로그인ID와 동일해야 합니다. 만약 위의 설정과 같이 share레벨은 공유디렉토리등에 설정하는 것으로서 ID와 패스워드의 인증없이 접속하는 것을 허용하는 레벨입니다. 또한 server레벨은 별도의 인증서버에서 ID와 패스워드인증을 받도록하는 레벨입니다. 가능하다면 삼바서버 보안을 위하여 user레벨을 사용하시는 것이 좋습니다.

 

password server = <NT-Server-Name>

위의 security옵션값이 server로 설정되었을 때에만 설정할 수 있는 옵션으로서 인증서버로 사용할 서버를 지정하는 옵션입니다.

 

password level = 8

패스워드 문자로 대소문자를 조합하여 사용할 문자의 개수를 지정한 옵션입니다.

 

username level = 8

삼바사용자명을 대소문자 조합하여 사용할 문자의 개수를 지정한 옵션입니다.

 

encrypt passwords = yes

패스워드를 암호화하여 사용하려면 “encrypt passwords”옵션값을 yes로 설정하시기 바랍니다.

 

smb passwd file = /etc/samba/smbpasswd

 “smb passwd file”옵션은 삼바사용자들의 암호파일의 위치를 지정한 것입니다. 기본적인 암호파일위치는 /etc/samba/smbpasswd입니다. 만약 보안을 위하여 사용자암호파일을 다른 곳에 지정하였다면 여기서 그 파일의 위치를 지정해 주셔야합니다.

 

unix password sync = Yes

passwd program = /usr/bin/passwd %u

passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*

삼바사용자가 원격지에서 삼바패스워드를 변경할 수 있도록 하기위한 설정입니다. 이 설정을 사용하여 원격에서 패스워드를 변경하도록 허용하려면 앞의 encrypt passwords옵션값에 yes라고 해야하고 smb passwd file옵션에 반드시 삼바사용자패스워드파일의 경로를 지정해야합니다.

 

username map = /etc/samba/smbusers

대부분 삼바에서 사용하는 ID와 리눅스계정ID는 동일하게 사용합니다. 만약 삼바사용자명과 리눅스 계정사용자명을 다르게 사용할 경우에 이를 매칭할 수 있도록 하기 위한 옵션으로서 매칭테이블 파일을 /etc/samba/smbusers파일로 사용하는 설정입니다.

 

include = /etc/samba/smb.conf.%m

이옵션은 삼바접속자의 플렛폼에 따라서 각기 다른 설정파일을 적용할 수 있도록 지원하기위해 사용하는 옵션입니다. %m은 접속자 시스템의 NetBIOS이름으로 대체되어 접속한 사용자의 플레폼종류에 따라서 각기 다른 삼바설정파일을 적용할 수 있습니다.    

 

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

삼바서비스 성능향상을 위한 옵션으로서 자세한 설명은 speed.txt파일을 보시기 바랍니다.

 

interfaces = 192.168.12.2/24 192.168.13.2/24

삼바서버에서 두개이상의 네트워크 인터페이스(NIC)를 사용하도록 지원하기 위한 옵션입니다. 삼바서버가 사용하는 모든 인터페이스의 네트워크 대역을 설정해두셔야만 그 네트워크 인터페이스를 사용할 수 있도록 합니다.

 

remote browse sync = 192.168.3.25 192.168.5.255

remote announce = 192.168.1.255 192.168.2.44

지역서브넷에서 삼바서버를 잘 인식하도록 하기 위하여 자기자신을 알리도록 합니다.

 

local master = no

이 옵션은 특정 서브네트워크내에서 삼바서버가 로컬마스트브라우즈가 되도록 하는 옵션입니다.

 

os level = 33

이 옵션은 마스터브라우즈 선거(master browser elections)에서 이서버의 우선권을 가질 수 있도록 허용합니다.

 

domain master = yes

삼바서버가 Domain Master Browser가 되도록합니다. 삼바가 Domain Master Browser가 되면 서브네트워크들로부터 브라우즈 목록을 수집하는 역할을 합니다.

 

domain logons = yes

삼바서버를 윈도우95기반의 워크스테이션에 대한 도메인로그인서버 역할을 하도록 하려면 이 옵션을 사용하십시요.

 

logon script = %m.bat

각플레폼별 또는 각 사용자별로 로그온스크립트(login script)를 구분하여 사용할 수 있도록 합니다.

 

logon script = %U.bat

사용자별로 로그온 배치파일을 지정하여 사용할 수 있도록합니다.

 

logon path = \\%L\Profiles\%U

오직 윈도우95 또는 윈도우NT에서 로우빙프로파일(roving profile)을 어디에 저장해 둘것인가를 지정하는 설정입니다.

 

wins support = yes

윈도우 인터넷네임서비스인 WINS를 지원하기 위한 섹션입니다.

 

wins server = w.x.y.z

WINS서버를 지정하기 위한 옵션입니다.

 

wins proxy = yes

WINS프락시 : WINS기능이 없는 클라이언트 대신 질의에 답하도록 하기위한 옵션입니다.

 

dns proxy = no

DNS nslookup을 사용하여 NetBIOS이름을 찾을 것인가 아닌가를 지정하는 옵션입니다.

 

preserve case = no

short preserve case = no

대소문자를 유지보존할 것인가를 지정하는 옵션입니다. 시스템의 기본값은 no입니다. 이 설정은 각 공유마다 별도로 설정할 수 있습니다.

 

default case = lower

DOS파일들의 기본 문자는 대문자로 인식합니다. 만약 lower로 설정한다면 소문자로 인식합니다.

 

case sensitive = no

대소문자의 구분을 할것인가 말것인가를 지정하는 옵션입니다.

 

이 다음부터는 공유정의(Share Definitions)부분입니다.

 

[homes]

   comment = Home Directories

   browseable = no

   writable = yes

사용자들의 홈디렉토리서비스에서 사용하는 기본적인 설정값입니다.

 

; [netlogon]

;   comment = Network Logon Service

;   path = /home/netlogon

;   guest ok = yes

;   writable = no

;   share modes = no

도메인로그온 기능을 사용하시려면 도메인로그온을 위한 netlogin을 위한 설정입니다. 주석제거를 하시면 사용할 수 있습니다.

 

;[Profiles]

;    path = /home/profiles

;    browseable = no

;    guest ok = yes

로우빙프로파일(roving profile)을 지정하려면 주석을 제거하면 됩니다. 사용자의 홈디렉토리를 기본값으로 사용합니다.

 

[printers]

   comment = All Printers

   path = /var/spool/samba

   browseable = no

guest ok = no

   writable = no

   printable = yes

BSD타입의 프린트시스템을 가지고있다면 개별 설정없이 바로 사용할 수 있습니다. 위의 guest ok항목이 yes로 되어 있다면 손님계정(guest account)으로 지정한 사용자들이 이 프린터시스템을 사용할 수 있도록 합니다.

 

;[tmp]

;   comment = Temporary file space

;   path = /tmp

;   read only = no

;   public = yes

삼바사용자들의 임시공유 디렉토리로 사용하기 위한 설정입니다.

 

[public]

   comment = Public Stuff

   path = /home/samba/public

   public = yes

   read only = no

   write list = @staff

삼바사용자라면 누구나 접근이 가능한 공유디렉토리로서 staff그룹에 등록된 사용자들을 제외한 일반사용자들은 읽기전용으므로만 사용할 수 있습니다.

 

;[public]

;   path = /usr/somewhere/else/public

;   public = yes

;   only guest = yes

;   writable = yes

;   printable = no

공유디렉토리로 사용할 위치를 지정한 것입니다. staff그룹에 등록된 사용자를 제외한 나머지 일반사용자들은 모두 읽기전용으로만 접근이 가능합니다. 이 설정은 이장의 뒷편에서 예제로 사용하는 public설정입니다.

 

[bible]

   comment = BIBLE USER

   path = /home/bible

   valid users = bible

   read only = no

   writable = yes

   public = no

   browseable = yes

   printable = no

   create mask = 0750

다음은 bible이라는 삼바사용자를 위한 설정입니다. 이 설정은 이장의 뒷편에서 예제로 사용하는 bible개인사용자에 대한 설정입니다.

 

 

4. 삼바 NETBIOS네임서버 데몬 nmbd

 

nmbd는 윈도우 시스템과의 파일 및 프린트공유를 위한 삼바(SAMBA)서버의 NETBIOS 네임서버 데몬입니다. 정상적인 삼바서비스를 위해서는 삼바서버의 주데몬인 smbd와 함께 실행되어 있어야합니다. 그리고 smbd nmbd /etc/rc.d/init.d/smb스크립트에 의해서 시작/재시작/종료될 수 있습니다. 이 데몬파일의 위치는 /usr/sbin/nmbd이며 다음과 같이 /usr/sbin/nmbd를 직접 실행하는 것 또한 가능합니다.

 

[root@bible init.d]# /usr/sbin/nmbd -D

[root@bible init.d]#

[root@bible init.d]# ps -ef | grep nmbd

root      2549     1  0 16:01 ?        00:00:00 /usr/sbin/nmbd -D

root      2551  1985  0 16:01 pts/0    00:00:00 grep nmbd

[root@bible init.d]#

 

위와 같이 nmbd데몬이 실행되어 있으면 PID(Process ID)파일이 다음과 같이 /var/run/samba/nmbd.pid위치에 생성이 됩니다.

[root@bible init.d]# ls -l /var/run/samba/nmbd.pid

-rw-r--r--    1 root     root           20 Feb 23 16:01 /var/run/samba/nmbd.pid

[root@bible init.d]#

 

참고로 삼바(SAMBA)의 주데몬인 smbd와 관련된 사항은 다음과 같습니다. 그리고 삼바(SAMBA)가 정상적으로 서비스되려면 nmbd와 함께 smbd데몬이 실행되어 있어야만 합니다. 이어서 설명하는 smbd를 보시기 바랍니다.

 

 

5. 삼바서버 주데몬 smbd

 

앞에서 설명한 nmbd데몬과 함께 smbd는 윈도우 시스템과의 파일 및 프린트공유를 위한 삼바서버의 주데몬입니다. 정상적인 삼바서비스를 위해서는 NETBIOS 네임서비스데몬인nmbd와 함께 실행되어 있어야 합니다. 이 데몬파일의 위치는 /usr/sbin/smbd이며 smbd nmbd데몬의 실행은 /etc/rc.d/init.d/smb스크립트에 의해서 시작/재시작/종료될 수 있습니다.

 

또한 다음과 같이 smbd는 자체적으로 실행이 가능합니다.

[root@bible init.d]# /usr/sbin/smbd -D

[root@bible init.d]#

[root@bible init.d]# ps -ef | grep smbd

root      2520     1  0 15:55 ?        00:00:00 /usr/sbin/smbd -D

root      2522  1985  0 15:55 pts/0    00:00:00 grep smbd

[root@bible init.d]#

 

위와 같이 smbd데몬이 실행되어 있으면 PID(Process ID)파일이 다음과 같이 /var/run/samba/smbd.pid위치에 생성이 됩니다.

 

[root@bible init.d]# ls -l /var/run/samba/smbd.pid

-rw-r--r--    1 root     root           20 Feb 23 15:55 /var/run/samba/smbd.pid

[root@bible init.d]#

 

 

 

6. 삼바클라이언트 유틸리티 smbclient

 

삼바서비스에서 smbclient는 윈도우 시스템과의 파일 및 프린터공유를 할 수 있는 삼바(SAMBA)서버의 클라이언트 유틸리티입니다. , smbclient를 이용하여 윈도우서버에 설치되어 있는 삼바서버로 로그인 할 수 있으며 또한 리눅스 서버에 설치되어 있는 삼바서버로의 접속 및 접속테스트, 정상작동유무 및 운용상황을 확인할 때에 유용하게 사용됩니다. 이 유틸리티의 위치는 /usr/bin/smbclient이며 사용형식은 다음과 같습니다.

 

사용형식   :  smbclient ‘\\서버\서비스’ [-U 삼바사용자] [패스워드] [옵션]

 

먼저, 가장 간단한 예를 들어보겠습니다.  , smbclient를 이용하여 현재의 로컬서버에 설치되어있는 삼바서버의 운용상태를 확인해 보도록 하겠습니다.

 

윈도우 시스템과의 파일 및 프린트공유를 할 수 있는 삼바(SAMBA)서버의 클라이언트 유틸리티 smbclient를 이용하여 현재 운용중인 로컬서버(local server)에 설치되어 있는 삼바서버의 운용상태를 확인 할 수 있습니다.

 

아래의 예는 현재 필자가 사용하고 있는 리눅스서버에 설치되어 있는 삼바서버의 접속 및 운용상태를 확인한 예입니다. “Password:”에는 삼바 사용자의 패스워드를 입력해 주셔야합니다.

[root@file root]# smbclient -L localhost

added interface ip=192.168.0.100 bcast=192.168.0.255 nmask=255.255.255.0

Password: ********

Domain=[SUPERUSER] OS=[Unix] Server=[Samba 2.2.7a]

 

        Sharename      Type      Comment

        ---------      ----      -------

        public         Disk      SUPERUSER PUBLIC SHARE DISK

        tmp            Disk      Temporary File

        cdrom          Disk      SUPERUSER CD-ROM SHARE

        papa           Disk      PAPA's DISK

        locli          Disk      LOCLI's DISK

        jinious        Disk      JINI's DISK

        doly           Disk      DOLY's DISK

        ymjpapa        Disk      YMJPAPA's DISK

        IPC$           IPC       IPC Service (SUPERUSER FILE SERVER)

        ADMIN$         Disk      IPC Service (SUPERUSER FILE SERVER)

        root           Disk      Home Directories

 

        Server               Comment

        ---------            -------

        DOLY                

        FILE                 SUPERUSER FILE SERVER

        LOCLI               

        MARUTA              

        PAPA                

 

        Workgroup            Master

        ---------            -------

        MYGROUP              COMMAND

        SUPERUSER            FILE

        WORKGROUP            GATEWAYPC

[root@file root]#

 

위의 결과를 보시면 윈도우에서 로그인하여 사용할 수 있는 공유명(sharename, 삼바사용자명)과 이 삼바서버로 접속가능한 컴퓨터(Server)들과 그룹명등의 정보를 확인 할 수 있습니다.  , 윈도우 시스템과의 파일 및 프린트공유를 할 수 있는 삼바(SAMBA)서버의 클라이언트 유틸리티 smbclient를 이용하여 원격지의 삼바서버로 접속을 할 수 있습니다.

 

아래의 예는 원격지의 file이라는 호스트로 papa라는 계정을 이용하여 삼바서버로 접속을 한 예입니다. “Password:”에는 file서버의 papa 삼바사용자의 패스워드를 입력해 주어야합니다.

[root@bible samba]# smbclient '\\file\papa' -U papa

added interface ip=192.168.0.111 bcast=192.168.0.255 nmask=255.255.255.0

Password: ********

Domain=[SUPERUSER] OS=[Unix] Server=[Samba 2.2.7a]

smb: \>

smb: \> dir

  .                                   D        0  Mon Feb 23 03:58:52 2005

  ..                                  D        0  Tue Feb 17 18:25:20 2005

  .bash_logout                        H       24  Sat Nov  8 21:31:46 2005

  .bash_profile                       H      191  Sat Nov  8 21:31:46 2005

  .bashrc                             H      124  Sat Nov  8 21:31:46 2005

  .emacs                              H      847  Sat Nov  8 21:31:46 2005

  .gtkrc                              H      120  Sat Nov  8 21:31:46 2005

  .ncftp                             DH        0  Tue Jan  6 11:17:37 2005

  www                                 D        0  Tue Jan  6 11:17:42 2005

  zlib.tar.gz                             169815  Tue Feb 17 14:07:30 2005

  .viminfo                            H     5392  Tue Jan  6 12:07:35 2005

  domain.tar.gz                            20982  Tue Feb 17 13:50:16 2005

  .bash_history                       H     1331  Wed Jan  7 00:51:13 2005

  .mysql_history                      H      339  Tue Jan  6 11:35:18 2005

  woojoo                              D        0  Tue Feb 17 13:54:23 2005

  testfile                                  2038  Thu Feb 19 17:04:12 2005

 

                63977 blocks of size 1048576. 30858 blocks available

smb: \>
smb: \>
get zlib.tar.gz

getting file \zlib.tar.gz of size 169815 as zlib.tar.gz (2961.3 kb/s) (average 2961.3 kb/s)

smb: \>

smb: \> exit

[root@bible samba]#

[root@bible samba]# ls -l zlib.tar.gz

-rw-r--r--    1 root     root       169815 Feb 23 18:59 zlib.tar.gz

[root@bible samba]#

 

위와 같이 smbclient를 이용하여 원격지의 file서버로 papa삼바계정으로 접속을 하였습니다. 패스워드를 정확하게 입력하였다면 위의 예와같이 dir, get, put등을 이용하여 파일을 확인하고 파일을 가져오거나 업로드할 수 있습니다. 위의 예에서는 dir을 이용하여 papa계정의 파일리스트를 확인한 후에 get을 이용하여 zlib.tar.gz파일을 가져온 예입니다. 그리고 exit를 이용하여 원격지 file삼바서버에서 빠져나온 후에 ls명령어로 가져온 zlib.tar.gz파일을 확인 하였습니다.

 

참고로 위의 예와 같이 서버명으로 file이라는 호스트명을 사용하려면 /etc/samba/lmhosts파일에 호스트정보가 등록되어 있어야 합니다. 아래는 /etc/samba/lmhosts파일의 내용을 확인한 것입니다.

[root@bible samba]# cat /etc/samba/lmhosts

127.0.0.1 localhost

192.168.0.100   file

[root@bible samba]#

 

윈도우 시스템과의 파일 및 프린트공유를 할 수 있는 삼바(SAMBA)서버의 클라이언트 유틸리티 smbclient를 이용하여 원격지에 있는 리눅스 서버에서 또 다른192.168.0.100서버의 삼바서버의 운용상황을 확인할 수 있습니다.

 

아래의 예는 원격서버에서 현재 필자가 사용하고 있는 리눅스서버에 설치되어 있는 삼바서버의 접속 및 운용상태를 확인한 예입니다. “Password:”에는 삼바 사용자의 패스워드를 입력해 주셔야 합니다.

[root@bible root]# smbclient -L 192.168.0.100

added interface ip=192.168.0.111 bcast=192.168.0.255 nmask=255.255.255.0

Password: ********

Domain=[SUPERUSER] OS=[Unix] Server=[Samba 2.2.7a]

 

        Sharename      Type      Comment

        ---------      ----      -------

        public         Disk      SUPERUSER PUBLIC SHARE DISK

        tmp            Disk      Temporary File

        cdrom          Disk      SUPERUSER CD-ROM SHARE

        papa           Disk      PAPA's DISK

        locli          Disk      LOCLI's DISK

        jinious        Disk      JINI's DISK

        doly           Disk      DOLY's DISK

        ymjpapa        Disk      YMJPAPA's DISK

        IPC$           IPC       IPC Service (SUPERUSER FILE SERVER)

        ADMIN$         Disk      IPC Service (SUPERUSER FILE SERVER)

        root           Disk      Home Directories

 

        Server               Comment

        ---------            -------

        DOLY                

        FILE                 SUPERUSER FILE SERVER

        LOCLI               

        MARUTA              

        PAPA                

 

        Workgroup            Master

        ---------            -------

        MYGROUP              COMMAND

        SUPERUSER            FILE

        WORKGROUP            GATEWAYPC

[root@bible root]#

 

앞의 결과와 마찬가지로  윈도우에서 로그인하여 사용할 수 있는 공유명(sharename, 삼바사용자명)과 이 삼바서버로 접속가능한 컴퓨터(Server)들과 그룹명등의 정보를 확인할 수 있습니다.

 

다음의 예는 윈도우 시스템과의 파일 및 프린트공유를 할 수 있는 삼바(SAMBA)서버의 클라이언트 유틸리티 smbclient를 이용하여 원격지에 있는 리눅스 서버에서 또 다른 192.168.0.100서버의 papa라는 삼바계정으로 접속하여 운용상황을 확인한 것입니다.

 

아래의 예는 원격서버에서 현재 필자가 사용하고 있는 리눅스서버에 설치되어 있는 삼바서버의 papa라는 삼바계정으로 접속하여 운용상태를 확인한 예입니다. 앞의 예와 마찬가지로 “Password:”에는 papa라는 삼바 사용자의 패스워드를 입력해 주어야합니다.

[root@bible root]# smbclient -U papa -L 192.168.0.100          

added interface ip=192.168.0.111 bcast=192.168.0.255 nmask=255.255.255.0

Password: ********

Domain=[SUPERUSER] OS=[Unix] Server=[Samba 2.2.7a]

 

        Sharename      Type      Comment

        ---------      ----      -------

        public         Disk      SUPERUSER PUBLIC SHARE DISK

        tmp            Disk      Temporary File

        cdrom          Disk      SUPERUSER CD-ROM SHARE

        papa           Disk      PAPA's DISK

        locli          Disk      LOCLI's DISK

        jinious        Disk      JINI's DISK

        doly           Disk      DOLY's DISK

        ymjpapa        Disk      YMJPAPA's DISK

        IPC$           IPC       IPC Service (SUPERUSER FILE SERVER)

        ADMIN$         Disk      IPC Service (SUPERUSER FILE SERVER)

 

        Server               Comment

        ---------            -------

        DOLY                

        FILE                 SUPERUSER FILE SERVER

        LOCLI               

        MARUTA              

        PAPA                

 

        Workgroup            Master

        ---------            -------

        MYGROUP              COMMAND

        SUPERUSER            FILE

        WORKGROUP            GATEWAYPC

[root@bible root]#

 

앞의 결과와 마찬가지로  윈도우에서 로그인하여 사용할 수 있는 공유명(sharename, 삼바사용자명)과 이 삼바서버로 접속가능한 컴퓨터(Server)들과 그룹명등의 정보를 확인할 수 있습니다.

 

 

 

7. 삼바 원격마운트를 위한 smbmount smbumount

 

원격지 서버에 설치되어 있는 삼바 서비스(삼바계정)를 원격마운트 할 수 있는 삼바마운트 명령어입니다. NFS(Network File System)로 원격서버의 특정  디렉토리에 마운트를 할 수 있는 개념과 원격마운트라는 점에서는 유사하다고 할 수 있습니다. , smbmount명령어는 원격지 삼바서버의 특정계정(서비스)을 로컬서버 디렉토리(마운트포인트)에 마운트 할 수 있습니다. 마운트가 된 후에는 원격서버의 파일들을 마치 로컬서버의 특정 디렉토리에 있는 것과 동일하게 사용할 수 있습니다. , NFS에서도 원격서버의 특정 디렉토리를 로컬서버의 마운트포인트로 마운트하여 사용하는 것과 매우 흡사합니다. 그리고 smbmount로 마운트한 후에 마운트를 해제하기 위해서는 smbumount를 이용합니다. 원격지 서버에 설치되어 있는 삼바의 서비스(삼바계정)를 원격마운트를 할 수 있는 삼바마운트 명령어가 smbmount이며  smbmount로 마운트된 것을 해제하는 명령어가 smbumount입니다. , 일반 파일시스템에서 mount로 마운트한 것을 해제하려면 umount를 사용하듯이 smbmount로 삼바마운트를 한 후에 삼바마운트를 해제하기 위해서는 smbumount를 이용합니다. 이 유틸리티의 위치는 각각 /usr/bin/smbmount, /usr/bin/smbumount이며 사용하는 형식은 다음과 같습니다.

 

사용형식   :  smbmount //호스트명(또는IP)/서비스  /마운트포인트
smbumount /
마운트포인트

 

다음은 smbmount를 이용하여 현재 서버에서 192.168.0.100서버의 papa라는 삼바사용자의 홈디렉토리를 현재 로컬서버의 /tmp/share로 마운트하는 예입니다.

[root@bible samba]# smbmount //192.168.0.100/papa /tmp/share

Password: ********

[root@bible samba]#
[root@bible samba]#
cd /tmp/share

[root@bible share]# pwd

/tmp/share

[root@bible share]#

[root@bible share]# ls -l

total 241

-rwxr-xr-x    1 root     root        20982 Feb 17 13:50 domain.tar.gz

-rwxr-xr-x    1 root     root         2038 Feb 19 17:04 testfile

drwxr-xr-x    1 root     root         4096 Feb 17 13:54 woojoo

drwxr-xr-x    1 root     root         4096 Jan  6 11:17 www

-rwxr-xr-x    1 root     root       169815 Feb 17 14:07 zlib.tar.gz

[root@bible share]#

 

위의 예에서 smbmount를 이용하여 마운트 한 후에는 /tmp/share디렉토리는 192.168.0.100서버의 papa라는 삼바사용자의 홈디렉토리와 같은 내용을 가지고 있습니다. , 삼바 마운트가 된 것입니다. 이를 확인하기 위하여 위의 예에서 cd명령어로 /tmp/share디렉토리로 이동한 후에 ls명령어로 파일리스트를 확인 하였습니다. 그 결과 192.168.0.100 papa 삼바사용자의 홈디렉토리의 내용의 파일들을 볼 수가 있습니다.

 

그리고 다음은 삼바마운트가 된 후에 이를 확인하기 위하여 mount라는 명령어를 사용하여 현재 마운트상황을 확인해 보았습니다. 

[root@bible share]# mount

/dev/sda3 on / type ext3 (rw)

none on /proc type proc (rw)

usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/sda1 on /boot type ext3 (rw)

none on /dev/pts type devpts (rw,gid=5,mode=620)

none on /dev/shm type tmpfs (rw)

//192.168.0.100/papa on /tmp/share type smbfs (0)
[root@bible share]#

 

위의 mount의 결과 중 맨 아래에 있는 “//192.168.0.100/papa on /tmp/share type smbfs (0)”이 앞에서 smbmount로 마운트한 결과를 확인해 주고 있습니다.

 

그리고 다음은 삼바마운트 해제를 하는 예로서 smbmount로 마운트했을 경우의 마운트해제는 smbumount로 해제하셔야 합니다.  다음은 앞에서 smbmount로 마운트한 것을 smbumount로 마운트해제한 예입니다.

[root@bible root]# smbumount /tmp/share

[root@bible root]#

[root@bible root]# mount

/dev/sda3 on / type ext3 (rw)

none on /proc type proc (rw)

usbdevfs on /proc/bus/usb type usbdevfs (rw)

/dev/sda1 on /boot type ext3 (rw)

none on /dev/pts type devpts (rw,gid=5,mode=620)

none on /dev/shm type tmpfs (rw)

[root@bible root]#

 

마운트 해제를 한 후에 mount라는 명령어로 현재 마운트상황을 확인하였으며 앞서 보였던 삼바마운트는 확인할 수 없다는 것을 알 수 있습니다.

 

....  2편강좌에서 계속 됩니다. 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  91 명