본문 바로가기
라즈베리파이/라즈비안

라즈베리파이 라즈비안 외장하드 공유폴더 만들기(Samba)

by Bugwhale 2020. 1. 27.

1. 개요

이전 글에서는 라즈베리파이에 공유폴더를 만들어 홈 네트워크에서 컴퓨터간 파일을 공유시켜 주었다. 원래 필자의 목표는 라즈비안에 마운트한 외장자체를 공유폴더로 만들 계획이라 여기서는 외장하드를 마운트한 경로인 홈 디렉토리에 _HDD 디렉토리를 공유폴더로 만들어 줄 것이다.

라즈비안에 외장하드를 마운트하지 않았다면 : 라즈비안 외장하드 마운트하기
라즈비안에 네트워크 공유폴더를 만들고 싶다면 : 라즈비안 네트워크 공유폴더 만들기(Samba)

2. 외장하드 공유폴더 추가

2.1 Samba 설치 및 계정 등록

다음 명령어로 패키지 목록을 최신화 하고 samba 패키지를 설치합니다.

sudo apt update
sudo apt install samba


samba 를 사용하기 전에 라즈베리파이의 계정을 등록해야 합니다. 다음 명령어로 라즈베리파이의 pi 계정을 등록합니다.

sudo smbpasswd -a pi

등록할 암호를 물어보는데 여기서 등록한 암호와 pi 의 로그인 암호와는 별개이니 크게 신경쓰지 않아도 되지만 이후 자격 증명 관리자를 사용하게 될 경우를 대비하여 암호를 기억해둡니다.
자격 증명 관리자에 대해서는 아래서 설명합니다.

2.2 공유 폴더 생성 및 설정

라즈비안 네트워크 파일 공유하기(Samba) 글을 따라 외장하드를 _HDD 경로에 마운트 한 것을 가정하에 진행합니다.

마운트한 디렉토리에 대해서 공유 설정을 해줘야 하며 공유폴더 설정은 smb.conf 파일에서 할 수 있습니다. 다음 명령어로 설정 파일을 열어줍니다.

sudo nano /etc/samba/smb.conf

파일의 가장 아래 부분에 다음 내용을 추가해줍니다.

[__HDD]
comment = Sharing Folder
path = /home/pi/_HDD
browseable = yes
writable = yes
create mask = 0644
directory mask = 0755

[__HDD] : 네트워크상에서 보여질 이름
comment = Sharing Folder : 공유폴더에대한 자신만의 설명으로 원하는 대로 적으면된다.
path = /home/pi/_HDD : 외장하드가 마운트된 디렉토리 경로이다.
browseable = yes : 네트워크상에서 해당 폴더 보이게 한다.
writable = yes : 누구에게나 해당 폴더에 쓰기 권한을 준다.
create mask = 0644 : 해당 폴더(samba)를 통하여 만들어진 파일 권한 644
directory mask = 0755 : 해당 폴더(samba)를 통하여 만들어진 폴더 권한 755

이 글은 홈 네트워크 기준으로 작성했기 때문에 위처럼만 작성한다면 누구나 접속이 가능할 뿐더러 파일의 읽고 쓰기가 가능해져 보안면에서는 엄청 취약해집니다. 필요 시에 아래 내용을 추가해줍니다.

read only = yes
guest ok = no
valid users = pi

read only = yes : 읽기 전용으로 설정
guest ok = no : 게스트 사용자 접근 불가능
valid users = pi : pi 사용자만 접근 허용

저장해준 뒤 다음 명령어로 samba 를 재시작해줍니다. (설정사항 변경 적용)
sudo systemctl restart smbd

3. 공유 폴더 접근

윈도우 검색창에서 \\라즈베리파이 IP 주소 를 입력합니다. 여기서 \\ 는 엔터 옆 또는 위에 있는 백 슬래시입니다.


정상적으로 접속이 된다면 우리가 samba를 통하여 만든 폴더(__smb)가 보이며 바탕화면에 바로가기를 생성하거나 네트워크 드라이브로 연결하여 편하게 접속할 수 잇습니다.

4. 자격 증명 관리자 등록(옵션)

혹시라도 공유폴더에 접속시도를 할 때마다 다음과 같은 네트워크 자격 증명 입력 이라는 창이 뜬다면 우선 samba 설정에서 writable 부분에 오타가 있는지 확인합니다. 이 글에서 설명한 그대로 할 경우 네트워크 자격증명이 뜨지 않기 때문입니다.

그럼에도 뜬다면 필자가 모르는 이유라서 추후 이유를 찾으면 내용을 추가하겠습니다. 사용자 이름에는 pi 를 암호에는 sudo smbpasswd -a pi 에서 설정해준 암호를 입력하면 접속할 수 있습니다. 접속할 때마다 이렇게 하기 번거로우니 자격 증명 관리자에 해당 네트워크 증명을 설정해줌으로써 자동으로 자격증명이 됩니다.

제어판(작은 아이콘) - 자격 증명 관리자 순서로 접속합니다.


Windows 자격 증명을 누른 뒤 Windows 자격 증명 추가를 눌러줍니다.


위와 같이 입력 후 확인을 눌러 자격 증명을 추가합니다.

[__SMB]
네트워크 주소 : 라즈베리파이의 IP 주소
사용자 이름 : pi
암호 : samba 에서 설정한 암호

5. 참고

댓글