본문 바로가기

개발자/Raspberry Pi

라즈베리 파이 삼바 서버 접속과 설치방법 - 삼바서버, 삼바설치




삼바(samba) SMB(Server Message Block) 또는 CIFS (Common Internet File System)로 알려져 있으며 리눅스와 윈도우간에 파일 및 프린터를 공유할 수 있게 해주는 프로그램이다


삼바를 통해 리눅스 서버를 타운영체제와 파일을 공유할 수 있는 파일서버로도 사용할 수 있다. 이와같이 삼바가 공유할 수있는 이유는 SMB(Server Message Block)/CIFS(Common Internet File System)라는 프로토콜을 이용함으로써 가능해졌다.


SMB ?

SMB(Server Message Block)는 마이크로소프트사와 인텔이 윈도우 시스템이

다른 시스템의 디스크나 프린터와 같은 자원을 공유할 있도록하기 위해

개발된 프로토콜이다. TCP/IP 기반하의 NetBIOS 프로토콜을 이용하기 때문에

이 프로토콜은 NFS, NIS, lpd 와 같은 유닉스의 분산인증구조와 유사하다.

따라서 윈도우 중심의 네트워크 환경에서는 리눅스를 이용한 공유시스템

에서는 SMB가 필수적이다..

 

CIFS ?

CIFS(Common Internet File System) 는 네트워크를 위한 SMB 파일 공유

프로토콜의 확장된 버전이며, 윈도우와 유닉스 환경을 동시에 지원하는

인터넷의 표준 파일 규약의 프로토콜이다. CIFS는 이전의 폐쇄적인 SMB

프로토콜과는 달리 CIFS 규약 정의는 여러 유닉스 업체의 참여하여

결정된 내용이기 때문에 삼바도 버전이 올라감에 따라(삼바 버전 2.2 이상)

CIFS 규약을 잘 준수하여 안정성이 상당히 향상 되었다.

 

, 삼바를 이용하면 라즈베리파이의 파일을 윈도우 환경에서 수정하거나 자유롭게 생성하할 수 있다. 즉 윈도우 탐색기에서 하는 기능을 그대로 라즈베리파이 환경에서 구동된다. 이를 이용하면 영상이나 음성 파일을 자유롭게 공유할 수 있고 라즈베리파이를 이용한 개발에도 매우 편리한 환경을 갖게 된다.


1. 삼바 설치


설치하다가 에러가 날 경우 apt-get update 를 실행하였냐 ? 하고 물어오는 경우가 있는데 우리는 그냥 일단 업데이트를 하고 시작한다. 어떤 패키지를 실행하기 전에라도 반드시 실행해 주자.


1
2
3

$ sudo apt-get update

cs


우선 삼바 프로토콜 및 삼바서버, 클라이언트와 관련된 의존성 패키지를 다음의 명령어를 이용하여 설치한다.


1
2
3
 
$sudo apt-get install samba samba-common-bin

cs



2. 필요한 메모리를 허용


설치도중에 필요한 공간 할당을 물어오는데 y 를 입력하면 설치가 계속된다. 아래는 참고삼아 설치 메세지를 그대로 카피한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pi@raspberrypi:~ $ sudo apt-get install samba samba-common-bin
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  attr libaio1 libasn1-8-heimdal libfile-copy-recursive-perl libhcrypto4-heimdal libhdb9-heimdal libheimbase1-heimdal
  libhx509-5-heimdal libkrb5-26-heimdal libroken18-heimdal libsmbclient libwind0-heimdal python-crypto python-dnspython
  python-ldb python-ntdb python-samba python-tdb samba-common samba-dsdb-modules samba-libs samba-vfs-modules tdb-tools
  update-inetd
Suggested packages:
  python-crypto-dbg python-crypto-doc bind9 bind9utils ctdb ldb-tools smbldap-tools winbind heimdal-clients
The following NEW packages will be installed:
  attr libaio1 libasn1-8-heimdal libfile-copy-recursive-perl libhcrypto4-heimdal libhdb9-heimdal libheimbase1-heimdal
  libhx509-5-heimdal libkrb5-26-heimdal libroken18-heimdal libwind0-heimdal python-crypto python-dnspython python-ldb
  python-ntdb python-samba python-tdb samba samba-common-bin samba-dsdb-modules samba-vfs-modules tdb-tools update-inetd
The following packages will be upgraded:
  libsmbclient samba-common samba-libs
3 upgraded, 23 newly installed, 0 to remove and 95 not upgraded.
Need to get 7,571 kB/8,893 kB of archives.
After this operation, 25.1 MB of additional disk space will be used.
Do you want to continue? [Y/n]
cs


y를 누르면 그냥 종료되니, 대문자 Y 나 그냥 엔터를 누르면 계속된다.



3. 삼바 유저 추가 및 패스워드 설정


다음의 명령어로 pi라는 삼바유저를 추가한다. 그러면 패스워드를 물어볼 것이다. 자신이 원하는 패스워드를 입력해준다. 아래 명령어에서 -a 다. 명령이 안먹으면 타이핑을 한다. 언더바가 아닌 마이너스 -a 로 타이핑


1
2
3
 
$ sudo smbpasswd -a pi
 
cs


아래와 같이 실행되어 패스워드를 두번 설정한다. 패스워드는 raspberry로 설정하였다.


1
2
3
4
5
6

pi@raspberrypi:~ $ sudo smbpasswd -a pi
New SMB password:
Retype new SMB password:
Added user pi.
pi@raspberrypi:~ $
 
cs


4. 삼바설정


다음의 명령어로 삼바 설정 파일을 수정해주어야 한다. 다른 설정을 변경할 필요없이 파일의 제일 하단에 새로운 유저 pi 에 대한 설정을 추가한다.


1
2
3
 
$ sudo nano /etc/samba/smb.conf
 
cs


명령을 사용하면 터미널에서 nano 편집기가 실행된다. 화살표키를 이용하여 제일 아래로 내려가서 다음 명령줄들을 입력한다. 입력이 끝나면 ctrl-x 를 누르면 저장할것이냐고 물어오면 y 를 누르고 같은 파일 이름이므로 enter 를 누르고 빠져나오면 된다.


1
2
3
4
5
6
7
8
9
 
[pi]
comment = rpi samba server by girin
path = /home/pi
valid user = pi
#writable = yes
read only = no
browseable = yes
 
cs


comment  : 유저 서버 설정에 대한 코멘트로 마음대로 적는다.

path : 공유할 폴더를 지정한다. 작업 폴더인 /home/pi 를 지정한다.

valid user : 사용 가능한 유저를 지정

writable : 쓰기를 가능하게 할 것인지에 대한 옵션

browseable : 공유 폴더의 목록을 보여주는 옵션


*주의 : 윈도우에서 탐색기로 접속하여 파일을 옮기거나 에디터를 사용해서 수정하고 저장하는 경우에 잘 안되는 경우 - 권한이 없다든가, 파일이 사용중이라는 메세지가 나올 때는 

위 4번째 줄 


writable = yes  를 아래 문장으로 바꿔준다.

    

read only = no



4. 삼바 재실행


설정된 내용이 반영될 수 있도록 삼바를 재실행시켜준다.


1
2
3
 
$sudo service samba restart
 
cs


위 명령으로 아래와 같은 메세지가 나오면서 재실행되지 않을때는


1
2
3
4
5
 
$ sudo service samba restart
Failed to restart samba.service: Unit samba.service is masked.
$
 
cs


삼바가 재실행이 되지 않으면 아래 명령어로 실행한다.


1
2
3
 
$sudo /etc/init.d/samba restart
 
cs


2019년 8월 5일 추가: 위 명령어로 실행이 안될때 아래 명령어로 실행한다. 특히 Raspberry pi3 B+ 버전은 참고하시길.


$ sudo service smbd restart




삼바가 재실행된다. 


1
2
3
4
5
6
7
 
 $ sudo /etc/init.d/samba restart
[ ok ] Restarting nmbd (via systemctl): nmbd.service.
[ ok ] Restarting smbd (via systemctl): smbd.service.
[ ok ] Restarting samba-ad-dc (via systemctl): samba-ad-dc.service.
 $
 
cs


5. 공유폴더접속


윈도우의 탐색기 혹은 네트워크를 열어서 폴더 주소 칸에 \\192.168.1.238\ 과 같이 라즈베리파이의 IP 주소를 적어주면 아래와 같이 공유를 설정해둔 라즈베리 파이 폴더에 접속할 수 있다. 여기에서 새로운 디렉토리를 만들고, 파일의 수정, 삭제, 복사, 이동이 가능하게 된다.

 




이렇게 설치하고 나면 윈도우 환경에서 자유롭게 접속하여 파일을 편집, 복사, 지우고, 이동이

가능해지니 개발환경이 좋아진다. ㅎㅎ


코드 아름답게 수정 2017. 06.02