개인/리눅스

[리눅스] 삼바의 기본상식과 설치 및 설정확인

OmeGa2 2020. 2. 24. 19:57

여러 시스템의 파일 공유 프로그램 "삼바"

마이크로소프트와 인텔에서 개발한 SMB를 이용해 윈도우와 유닉스계열의 운영체제나

다른 시스템 간의 자원을 공유할 수 있도록 만든 프로그램이다.

 

삼바는 윈도우 계열의 운영체제와 유닉스계열의 리눅스, 매킨토시 등 다양한 운영체제가

존재할 때 통합적으로 파일이나 자원을 관리하며 공유하기위해 사용하는 프로그램이다.

즉, 서로 다른 OS간의 파일과 printer 자원을 공유하는 목적으로 사용한다.

 

GNU 라이선스가 부여된 삼바는 자유 소프트웨어이며 무료로 베포되어 누구나 사용할 수 있고

SMB / CIFS 프로토콜을 이용해서 작동하기 때문에 해당 프로토콜이 설치된 시스템만 사용할 수 있다.

 

CIFS는 IETF에 의해 인터넷 표준으로 제안되었고, TCP/IP를 사용해 NetBIOS 도 지원한다.

 

 

SMB (Server Message Block) 프로토콜

마이크로소프트와 인텔에서 윈도우와 다른 시스템이 자원을 공유하기 위해 개발

 

CIFS (Common Internet File System)

SMB의 확장된 버전으로 윈도우와 리눅스환경을 모두 지원한다.

 

 

삼바 설치하기

GPL 라이선스를 따라 공개된 자유소프트웨어인 삼바는 관련 홈페이지에서 무료로 다운받을 수 있다.

 

▶ 소스 파일 다운로드 

http://www.samba.org 

 

Samba - opening windows to a wider world

Samba is the standard Windows interoperability suite of programs for Linux and Unix. Since 1992, Samba has provided secure, stable and fast file and print services for all clients using the SMB/CIFS protocol, such as all versions of DOS and Windows, OS/2,

www.samba.org

위 홈페이지에는 소스파일과 설지방법에 관한 내용 또한 상세하게 나와있다.

홈페이지에서 다운받은 소스파일은 기본적으로 configure, make, make install 을 이용한다.

 

 

 

▶ 패키지 관리 프로그램 사용

 

삼바는 여러 배포판에서 제공되는 패키지 관리 프로그램으로 다운받아도 무방하다.

레드햇 배포판에서는 rpm기반의 패키지를 yum으로 쉽게 설치할 수도 있다.

 

삼바의 RPM 패키지

samba                : 삼바 서버 패키지로 데몬, 라이브러리, 스크립트 등이 들어있다.

samba-common : 삼바 서버와 클라이언트 모두에게 필요한 패키지로 환경설정파일과 명령어 등이 있다.

samba-client      : 클라이언트에서 사용하는 명령어가 들어있다.

samba-swat       : 웹기반으로 삼바를 제어하는 swat가 있다.

 

]# yum install [패키지명]

 

samba 설치 전
samba 설치 후

CentOS6 에서 [yum install samba] 명령을 통해 삼바 관련 패키지를 설치했다.

 

3개의 패키지를 설치하는데, 명령어를 세 번 나눠서 입력할 필요 없이 한번에 설치되었다.

 

 

 

삼바 관련 데몬과 환경설정 파일

삼바 서버에서는 2개의 데몬과 하나의 환경설정 파일을 가지고 있다.

 

▶ 데몬

smbd : 파일과 프린터장치 공유, 사용자인증을 담당한다.

nmbd : 윈도우 인터넷 네임 서비스를 담당한다.

         NetBIOS를 지원하며 컴퓨터 이름과 IP주소를 연결하는 역할을 수행

삼바 관련 데몬은 /etc/rc.d/init.d 디렉터리 안에 위치하고 있다.

 

데몬 실행하기

1. smbd 실행

]# /etc/rc.d/init.d/smb start

]# service smb start

 

2. nmbd 실행

]# /etc/rc.d/init.d/nmb start

]# service nmb start

 

 

실행한 데몬은 pa -aux 명령을 통해 정상 작동중인지 확인할 수 있다.

 

 

 

▶ 환경설정 파일 (smb.conf) 확인

 /etc/samba에 존재하는 smb.conf 파일은 삼바 서버를 제어하고 시스템 자원에

대한 여러 설정정보가 저장된 파일로 크게 [Global Setting] 와 [Share Definitions] 영역으로 나뉜다.

 

 

1. smb.conf 파일의 주석

 

일반적으로 리눅스에서는 설정파일에 "#" 문자가 들어가 있는 행은 주석처리되어 

시스템에 아무런 영향을 주지 않는다.

 

삼바의 설정파일인 smb.conf에서는 주석을 나타내는 "#"과 동시에 세미콜론 ";" 문자도 주석처리된다.

 

그 이유는 삼바는 리눅스같은 유닉스 계열의 운영체제 뿐만 아니라 윈도우의 운영체제와도 자료와

하드웨어를 공유할 수 있도록 만드는 프로그램이다.

 

따라서 리눅스의 주석인 "#" 문자와 윈도의 주석인 ";" 문자 모두 주석으로 처리되는 것이다.

 

 

2. 섹션 구분

 

삼바에서는 "[ ]" 중괄호를 이용해서 기본적으로 섹션을 구분한다.

[global] : 삼바 서버 전체의 환경설정

[homes] : 각 사용자가 서버의 홈디렉토리로 접근할 때 권한

[printers] : 프린터 관련 권한

각 세션의 기본설정은 아래와 같다.

다음 섹션으로 넘어가기 전 까지의 설정이 해당 섹션에 적용된다.

 

global 섹션에서는 "hosts allow" 설정을 이용해 삼바에 접속할 수 있는 호스트를 지정할 수 있다.

 

(사용 예시)

hosts allow = 192.168.1.0/255.255.255.0

 = 192.168.1.0 해당 대역대에 속한 모든 호스트의 접속을 허용한다.

 

hosts allow = 192.168.1. EXCEPT [IP주소] [IP주소]

 = 192.168.1.0 네트워크에서 해당 IP주소를 제외한 호스트만 서버에 접속할 수 있다.

 

hosts allow = [호스트명], [호스트명]

 = 해당 호스트만 서버에 접속을 허용한다. 호스트는 쉼표(,)로 구분한다.

 

 

삼바 관련 명령어

 

1. 서버로 접근

]# smbclient [호스트]

-L : 서버의 공유디렉토리 정보 공유

-U : 서버에 접속할 때 사용자명 사용

-M : 지정한 호스트에 메시지를 전송한다.

클라이언트에서 사용하는 명령으로 서버에 접근할 때 사용한다.

접속하려는 IP주소로 접속하거나, 호스트이름으로 접근할 수 있으며 대소문자를 구분하지 않는다.

 

 

▷ 사용 예시

]# smbclient \\\\192.168.2.10\\tmp

]# smbclient //192.168.2.10/tmp

 = 192.168.2.10 에 접속한 뒤 tmp라는 공유디렉터리에 접근한다.

 

]# smbclient -L other

 = other 라는 호스트에 접근해서 공유 디렉터리 목록을 확인한다.

 

 

 

2. 서버와 클라이언트의 연결상태

]# smbstatus

서버에서 사용하는 명령어로 여러 클라이언트와 연결된 상태를 확인한다.

 

 

 

3. 환경설정 정보 확인

]# testparm

삼바의 환경설정 파일 smb.conf 에 정상적으로 설정된 목록을 확인할 수 있다.

 

testparm 명령을 사용한 결과, 실제 설정파일인 smb.conf 에서

주석처리 (#, ; ) 된 목록을 제외한 실제 적용된 설정정보를을 확인할 수 있다.

 

 

 

 

4. 삼바 사용자 관리

]# smbpasswd

-a : 삼바 사용자 추가

-x : 삼바 사용자 제거

-d : 사용자의 계정 비활성화

-e : 사용자의 계정 활성화

-n : 패스워드 없이 로그인 (smb.conf : null password = yes)

삼바에서 사용자를 생성, 삭제 등 관련정보를 변경할 수 있는 명령이다.

 

 

▷ 사용 예시

]# smbpasswd -a other

 = other 이라는 사용자를 생성

 

]# smbpasswd other

 = other 계정의 패스워드 변경

 

]# smbpasswd -x other

 = other 계정을 제거한다.

 

 

5. 데이터베이스 관리

]# pdbedit

-a : 사용자 추가 (리눅스에 생성되어 있는 계정 중에서)

-L : 등록된 사용자의 목록 확인

-v : 사용자의 정보를 자세히 확인

삼바에서는 사용자를 SAM database 라는 데이터베이스를 이용해서 관리하고 있다.

 

이 명령은 데이터베이스에 사용자를 등록하며 관리하는 명령이다.